输入绑定从文本框中窃取输入

时间:2012-03-16 17:18:25

标签: wpf

在我的主寡妇中,我将一些命令映射到1,2,3,4。当我在文本框中按下这些键时,执行这些命令而不是将1/2/3/4添加到文本框中。确保在文本框中键入这些键的最佳方法是添加这些文本而不是执行命令?

这是一个示例程序,当我按'1'时,执行的逻辑运行并且'1'没有添加到文本框中。任何其他键都可以正常工作。

<Window x:Class="TextboxWithCommands.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.InputBindings>  
        <KeyBinding Command="Open" Key="D1"/>    
    </Window.InputBindings>

    <Window.CommandBindings>
        <CommandBinding Command="Open" 
                        Executed="CommandBinding_Executed"
                        CanExecute="CommandBinding_CanExecute"/>
    </Window.CommandBindings>

    <Grid>
        <TextBox/>
    </Grid>
</Window>



 private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e)
        {

        }

        private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e)
        {
            e.CanExecute = true;
        }

1 个答案:

答案 0 :(得分:0)

以下是执行此操作的一种方法:

private void CommandBinding_CanExecute( object sender , CanExecuteRoutedEventArgs e )
{
  e.CanExecute = !(e.ContinueRouting = (FocusManager.GetFocusedElement( this ) is TextBox));
}