【发布时间】:2010-10-16 06:35:15
【问题描述】:
我正在创建一个应用程序,我一直在假设 当控件绑定到视图模型中的成员时 (即一个文本框到一个字符串字段)字符串会在任何时候更新 用户更改文本框中的信息,以后不会。
但我发现当文本框更新字符串时 当用户从文本框中单击\tabs 时,会发生更改。
(如果重要的话,我正在使用 Caliburn.Micro 框架。)
谁能解释一下哪个是正确的以及如何做到这一点 更改会立即反映吗?
【问题讨论】:
我正在创建一个应用程序,我一直在假设 当控件绑定到视图模型中的成员时 (即一个文本框到一个字符串字段)字符串会在任何时候更新 用户更改文本框中的信息,以后不会。
但我发现当文本框更新字符串时 当用户从文本框中单击\tabs 时,会发生更改。
(如果重要的话,我正在使用 Caliburn.Micro 框架。)
谁能解释一下哪个是正确的以及如何做到这一点 更改会立即反映吗?
【问题讨论】:
这不是 WPF 问题...它完全取决于控件。
但我发现字符串 更改文本框时更新 并且当用户单击 \tabs 时 文本框。
这是一个特定的文本框,以减少设置操作的数量,避免设置不完整的数据。
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c3ae2677-7cc9-4bb3-9cce-4e7c0eeff6f0 有一个解决方案 - 基本上更新源触发器设置为属性更改。但是,如果这样做,您会在模型中获得更多无效数据,例如当人们输入发票编号时,所有部分都将进入模型。
http://msdn.microsoft.com/en-us/library/system.windows.data.binding.updatesourcetrigger.aspx 有一个很好的解释 - 就像它说的那样,正常触发器是 PropertyChanged,而文本属性默认为 LostFocus。
【讨论】: