c# - IsChanged with IChangeTracking Not Firing on Window Close WPF MVVM C#

标签 c# wpf mvvm inotifypropertychanged

我的目标是如果用户尝试关闭窗口并且对字段进行了更改,则在窗口上显示一个消息框。我正在使用包装器来包装屏幕上表示的对象(继承 NotifyDataErrorInfoBase 接口(interface)),并且在窗口关闭事件上使用命令绑定(bind)和关闭行为时一切正常。

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

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

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

似乎只有在某个字段上失去焦点或执行其他操作(如单击按钮)时确认数据到某个字段时,跟踪更改才有效。这是真的?如果是这样,是否可以开始跟踪 TextChanged 上的更改? ?

最佳答案

尝试设置UpdateSourceTrigger绑定(bind)到 PropertyChanged :

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

当您在 TextBox 中键入内容时,这应该会立即设置源属性。 .

关于c# - IsChanged with IChangeTracking Not Firing on Window Close WPF MVVM C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45862991/

相关文章:

c# - 用于检查非字母数字字符的 Windows 窗体文本框或 c# 字符串 native 方法

WPF 控制翻转

c# - 用于共享列表的 MVVM 应用程序中的列表模型是否可行?

c# - Grouped TreeView 中的 WPF ListView 不起作用

C# 不区分大小写的字符串比较

C# 程序崩溃,因为列表框项更改

c# - 试图了解 Caliburn Micro EventAggregator

c# - WPF 创建在 xaml 中定义的控件实例

c# - WPF 用户控件库中的 UserControl 绑定(bind)不适用于 ContentControl

wpf - 如何让 WPF 组件占用所有可用空间?