【发布时间】:2011-07-12 10:25:28
【问题描述】:
今天我研究了 MSDN 示例以验证 WPF 文本框输入(另请参阅:http://msdn.microsoft.com/en-us/library/ms753962.aspx)。
在我自己的应用程序中,我使用 MVVM 模式将视图的 DataContext 绑定到 ViewModel。某些 TextBox 数据绑定到 ViewModel 上的属性,并具有特定的 ValidationRules。
我发现当一个值失效时,在它之前成功验证后,旧值将保留在 ViewModel 中。在我看来非常没用,因为值用于例如命令执行。
我的这个确切问题也适用于给定的 MSDN 示例。 TextBox 的值仅在成功验证后才会发送回其源。我想保留验证逻辑,但它应该始终更新源。这可能吗?
提前致谢。
【问题讨论】:
-
尝试将 BindingMode 设置为 TwoWay:msdn.microsoft.com/it-it/library/…
-
你想要什么直接违背了机制的设计/目的。所以:不太可能。
-
@Tigran,感谢您的回复,但不幸的是,这并没有什么不同。
-
@Henk,明白你在指出这一点,但它会给 ViewModel/DataContext 留下过时的数据......
-
@Monty:不,它可以防止使用无效数据使 ViewMode 失效。这是观点问题,不支持您的观点。