WPF CommandParameter в текстовом поле

Хотя вышеуказанная тема была полезна. Я не мог заставить все работать, пока я не создал «пустышку» «базовое» приложение MVC 4, а затем сравнил web.configs, чтобы найти какие-либо изменения.

10
задан H.B. 18 May 2011 в 15:41
поделиться

2 ответа

Если я хочу, чтобы команда выполнялась, если пользователь нажимает клавишу ВВОД, я бы хотел использовать это. Обратите внимание на умное использование привязки IsDefault: -)

<TextBox x:Name="inputBox"/>
<Button Command="{Binding CutCommand}" 
        CommandParameter="{Binding Text, ElementName=inputBox}" 
        Content="Cut" 
        IsDefault="{Binding IsFocused, ElementName=inputBox}" />

Если вы не хотите, чтобы кнопка была видимой, вы, конечно, можете установить ее видимость в свернутом виде. Я думаю, он все равно выполнит команду, если вы нажмете Enter.

28
ответ дан 3 December 2019 в 14:53
поделиться

Что вы пробовали? У меня работает этот код:

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Window.CommandBindings>
        <CommandBinding Command="Cut" Executed="CommandBinding_Executed" />
    </Window.CommandBindings>
    <StackPanel>
        <TextBox x:Name="textBox1" />
        <Button Command="Cut" 
                CommandParameter="{Binding Text,ElementName=textBox1}" 
                Content="Cut" />
    </StackPanel>
</Window>

С этим обработчиком событий:

private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e)
{
    MessageBox.Show(e.Parameter.ToString());
}
1
ответ дан 3 December 2019 в 14:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: