绑定InputBindings后,TextEdit绑定变为null

时间:2014-10-08 08:43:53

标签: c# wpf mvvm

我有一个像这样的按钮和TextEdit,它们工作正常:

<dxe:TextEdit Text="{Binding SearchText}" />
<Button Command="{Binding SearchCommand}" / >

我想在用户点击Enter时进行搜索,所以我改变了我的代码:

<dxe:TextEdit Text="{Binding SearchText}"  >
                    <dxe:TextEdit.InputBindings>
                        <KeyBinding Key="Enter" Command="{Binding SearchCommand}"  />
                    </dxe:TextEdit.InputBindings>
                </dxe:TextEdit>
<Button Command="{Binding SearchCommand}">

这样可行,但在代码中, SearchText 始终为null。所以我在添加输入绑定时打破了一些东西,你能告诉我如何解决这个问题吗? 我也试过这个,但SearchText仍然是空的。

<KeyBinding Key="Enter" Command="{Binding SearchCommand}"  CommandParameter="{Binding Path=Text, RelativeSource={RelativeSource AncestorType={x:Type dxe:TextEdit}}}" />

2 个答案:

答案 0 :(得分:2)

如果我没记错的话,DevExpress编辑器的默认UpdateSourceTrigger属性是LostFocus(我可能错了)

为了使您的代码有效,您必须通过将UpdateSourceTrigger设置为PropertyChangted来强制源在目标值更改时更新。

您可以在MSDN

上阅读有关UpdateSourceTrigger属性的更多信息

答案 1 :(得分:1)

您是否已通知代码更改?您必须通过在类中继承INotifyPropertyChanged接口并调用PropertyChangedEventHandler事件来完成此操作;