IsChanged 且 IChangeTracking 未在 Window 上触发关闭 WPF MVVM C#
IsChanged with IChangeTracking Not Firing on Window Close WPF MVVM C#
我的目标是在 window 上显示一个消息框,如果用户试图关闭 window 并且已经对字段进行了更改。我正在使用包装器来包装屏幕上显示的对象(继承 NotifyDataErrorInfoBase
接口),并且在 window 关闭事件上使用命令绑定和关闭行为时一切正常。
我的问题是 window 首次打开时,文本框首先获得焦点。如果我在文本框中键入内容,然后单击 "X" 按钮关闭 window,则轨道更改不起作用。
如果我在文本框中输入内容然后单击我的关闭按钮(绑定到关闭命令),它工作正常。
如果我从下拉列表中 select 一个值,然后单击 "X" 按钮关闭 window,它工作正常。
似乎只有当焦点丢失在字段上或执行其他操作(如单击按钮)时确认数据到字段时,跟踪更改才有效。这是真的?如果是这样,是否可以在 TextChanged
上开始跟踪更改?
尝试将绑定的 UpdateSourceTrigger
设置为 PropertyChanged
:
<TextBox Text="{Binding YourProperty, UpdateSourceTrigger=PropertyChanged}" />
当您在 TextBox
.
中输入内容时,这应该会导致源 属性 立即设置
我的目标是在 window 上显示一个消息框,如果用户试图关闭 window 并且已经对字段进行了更改。我正在使用包装器来包装屏幕上显示的对象(继承 NotifyDataErrorInfoBase
接口),并且在 window 关闭事件上使用命令绑定和关闭行为时一切正常。
我的问题是 window 首次打开时,文本框首先获得焦点。如果我在文本框中键入内容,然后单击 "X" 按钮关闭 window,则轨道更改不起作用。
如果我在文本框中输入内容然后单击我的关闭按钮(绑定到关闭命令),它工作正常。
如果我从下拉列表中 select 一个值,然后单击 "X" 按钮关闭 window,它工作正常。
似乎只有当焦点丢失在字段上或执行其他操作(如单击按钮)时确认数据到字段时,跟踪更改才有效。这是真的?如果是这样,是否可以在 TextChanged
上开始跟踪更改?
尝试将绑定的 UpdateSourceTrigger
设置为 PropertyChanged
:
<TextBox Text="{Binding YourProperty, UpdateSourceTrigger=PropertyChanged}" />
当您在 TextBox
.