Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将控制级别(视图)验证错误返回到视图模型_C#_Wpf_Validation_Mvvm - Fatal编程技术网

C# 将控制级别(视图)验证错误返回到视图模型

C# 将控制级别(视图)验证错误返回到视图模型,c#,wpf,validation,mvvm,C#,Wpf,Validation,Mvvm,我有一个自定义控件,它从视图模型绑定到一个对象。该控件有自己的“mini viewmodel”(实现RaisedPropertyChanged和idataerrorinfo),它可以隐藏代码以进行某些特定的验证 此控件内部使用的某些属性可能会导致控件处于无效状态(这些属性是控件固有的,并不表示我们绑定到的模型的属性)。如何使这些验证错误“冒泡”,以便绑定到此控件的属性显示为存在验证错误 举个更清楚的例子。假设我有一个绑定到自定义usercontrol的person属性的person对象。此控件将

我有一个自定义控件,它从视图模型绑定到一个对象。该控件有自己的“mini viewmodel”(实现RaisedPropertyChanged和idataerrorinfo),它可以隐藏代码以进行某些特定的验证

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


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

您搞错了-控件在ViewModel上设置值(通过绑定)ViewModel验证每个字段,并通过IDataErrorInfo提供错误消息。有关更多信息,请参阅:

我知道IDataErrorInfo是如何工作的,我正在寻找一种方法来表明“Person”本身是无效的,而不仅仅是Person的子属性。虽然它不能解决我眼前的问题,但我将把它作为答案,因为我真正的问题似乎是方法,而不是缺少一个接口来做我想做的事情;P