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

时间:2010-10-16 06:35:15

标签: c# .net wpf mvvm

我正在创建一个应用程序,我一直在假设 当控件绑定到视图模型中的成员时 (即TextBox到字符串字段)每次更新字符串 用户不再更改文本框中的信息。

但我发现字符串是在文本框中更新的 当用户点击文本框中的\ tabs时,会更改。

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

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

1 个答案:

答案 0 :(得分: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有一个很好的解释 - 就像它说的那样,普通触发器是PropertyChanged,而text属性默认为LostFocus。