2017-08-24 91 views
0

我的目标是如果用户试图关闭窗口并对字段进行更改,则在窗口上显示一个消息框。我正在使用包装来包装屏幕上显示的对象(继承接口NotifyDataErrorInfoBase),并且在窗口关闭事件中使用命令绑定和关闭行为时,所有工作都正常。IsChanged与IChangeTracking不在窗口上触发关闭WPF MVVM C#

我的问题是当窗口第一次打开时,文本框首先关注焦点。如果我在文本框中键入内容,然后单击“X”按钮关闭窗口,则轨道更改不起作用。

如果我在文本框中键入内容然后单击我的关闭按钮(它被绑定到关闭命令),它可以正常工作。

如果我从下拉列表中选择一个值,然后单击“X”按钮关闭窗口,它可以正常工作。

似乎跟踪更改仅适用于在焦点丢失在字段或进行其他操作(如单击按钮)时将数据确认为字段。这是真的?如果是这样,是否有可能开始跟踪TextChanged上的更改?

回答

3

尝试绑定的UpdateSourceTrigger设置为PropertyChanged

<TextBox Text="{Binding YourProperty, UpdateSourceTrigger=PropertyChanged}" /> 

这应当引起,当你输入一些东西到TextBox源属性来获取立即设置。