Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 在文本框(MVVM)中向下连接键_Wpf_Mvvm_Binding_Triggers_Command - Fatal编程技术网

Wpf 在文本框(MVVM)中向下连接键

Wpf 在文本框(MVVM)中向下连接键,wpf,mvvm,binding,triggers,command,Wpf,Mvvm,Binding,Triggers,Command,在没有代码隐藏的情况下连接keydown事件有点问题! 所以,我们有组合框 <ComboBox Height="20" Width="auto" ItemsSource="{Binding AlignComboItems}" SelectedValue="{Binding SelectedComboItem, Mode=TwoWay}" SelectedValuePath="Key"

在没有代码隐藏的情况下连接keydown事件有点问题! 所以,我们有组合框

<ComboBox Height="20" Width="auto"
                  ItemsSource="{Binding AlignComboItems}"
                  SelectedValue="{Binding SelectedComboItem, Mode=TwoWay}"
                  SelectedValuePath="Key" DisplayMemberPath="Value"

                  SelectedItem="{Binding SelectedItem}"
                  x:Name="cmbBoxAlign">
</ComboBox>

还有一些文本框

<TextBox Text={Binding SomeSource}></TextBox>


如何捕捉文本框上的keydown事件,以选择(例如)ComboBox中的最后一个元素?我无法使用文本框数据源属性更改,因为需要将用户输入挂起。

如果希望每次文本框中有向下键时都在视图模型中激活代码,则需要稍微更改绑定:

<TextBox Text="{Binding SomeSource, UpdateSourceTrigger=PropertyChanged}"

此外,请确保在视图模型上设置了INotifyPropertyChanged。

如果希望每次文本框中有一个向下键时都在视图模型中激活代码,则需要稍微更改绑定:

<TextBox Text="{Binding SomeSource, UpdateSourceTrigger=PropertyChanged}"

另外,确保在视图模型上设置了INotifyPropertyChanged。

如果您不介意安装Expression Blend SDK,您应该可以在文本框中执行此操作

<i:Interaction.Triggers>
    <i:EventTrigger EventName="KeyUp">
        <i:InvokeCommandAction Command="{Binding Path=TheCommand}" />
    </i:EventTrigger>
</i:Interaction.Triggers>
链接到Expression SDK for 4.0


如果您不介意安装Expression Blend SDK,您应该可以在文本框中执行此操作

<i:Interaction.Triggers>
    <i:EventTrigger EventName="KeyUp">
        <i:InvokeCommandAction Command="{Binding Path=TheCommand}" />
    </i:EventTrigger>
</i:Interaction.Triggers>
链接到Expression SDK for 4.0


通过这种方式,它将一直在更改,即使数据源是通过编程而不是用户更改的!啊,我明白了,我不明白你的问题。是的,即使以编程方式更改了值,也会触发此命令。我需要在用户键入smth时触发此命令。这样,它将一直更改,即使数据源是以编程方式而不是由用户更改的!啊,我明白了,我不明白你的问题。是的,即使以编程方式更改值也会触发。我需要在用户键入smth时触发。此外,有很多MVVM框架都有自己的解决方案,如果有,您正在使用哪个?谢谢,我认为这是最简单的方法。此外,有很多MVVM框架都有自己的想法,如果有,你会用哪一个?谢谢,我认为这是最简单的方法。