在C#(WPF)中,当UI线程中的datachanges立即发生数据绑定时会发生吗?

Sci*_*r24 5 .net c# wpf mvvm

我正在创建一个应用程序,我一直假设当控件绑定到视图模型中的成员(即TextBox到字符串字段)时,只要用户更改文本框中的信息,就会更新字符串没有以后

但我发现,当文本框更改时以及用户单击文本框中的\ tabs时,字符串会更新.

(如果重要的话,我正在使用Caliburn.Micro框架.)

有人可以解释哪些是正确的,如何做到这一点,以便立即反映变化?

小智 6

这不是WPF问题......它完全取决于控件.

但我发现,当文本框更改时以及用户单击文本框中的\ tabs时,字符串会更新.

这是特定的文本框,用于减少设置操作的数量并避免设置不完整的数据.

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c3ae2677-7cc9-4bb3-9cce-4e7c0eeff6f0有一个解决方案 - 基本上更新源触发器设置为属性已更改.但是,如果这样做,您会在模型中获得更多无效数据,例如当人们输入一个invocie号时,所有部分都将转到模型.

http://msdn.microsoft.com/en-us/library/system.windows.data.binding.updatesourcetrigger.aspx有一个很好的解释 - klike它说,普通触发器是PropertyChanged,而text属性默认为LostFocus.