0

我有一个自定义控件,它绑定到视图模型中的对象。该控件有它自己的“迷你视图模型”(实现了 raiseproperychanged 和 idataerrorinfo),它的代码用于某些特定的验证。

此控件内部使用了一些属性,可能导致控件处于无效状态(这些属性是控件固有的,并不代表我们绑定到的模型的属性)。如何让这些验证错误“冒泡”,以便绑定到此控件的属性显示为具有验证错误?

举一个更清楚的例子。假设我有一个绑定到自定义用户控件的人员属性的人员对象。此控件将允许您编辑人员的子属性等。除了通常应用于人员对象的验证之外,此控件中还有其他验证,例如在用户关闭控件创建的对话框或单击指示他们已完成编辑的复选框之前,控件“无效”。我希望将这些验证错误传播出去,以便与 person 属性的绑定显示验证错误,或者更具体地说,显示包含它的 VM。

4

1 回答 1

1

你搞错了——控件在 ViewModel 上设置值(通过绑定),ViewModel 验证每个字段并通过 IDataErrorInfo 提供错误消息。有关更多信息,请参阅:http ://codeblitz.wordpress.com/2009/05/08/wpf-validation-made-easy-with-idataerrorinfo/

于 2012-04-04T20:15:16.633 回答