C# 如何/最佳实践-使用IDataErrorInfo进行条件验证

C# 如何/最佳实践-使用IDataErrorInfo进行条件验证,c#,wpf,mvvm,C#,Wpf,Mvvm,我的问题是,如何在运行时内更改验证规则并刷新它们。例如(实际上只是一个例子):我们有一个包含内容的组合框vehicle 汽车 朴素的 船 和一个组合框轮数 二, 三, 四, 对于用户来说,有必要在两个组合框中选择一个值,但如果用户选择了“普通”或“船”,则当然没有必要。当然,检查不是问题 组合框车轮计数验证中的设置,但当我更改组合框车辆中的设置时,组合框车轮计数的验证结果没有更改。 也有可能,使用IDataErrorInfo不是最好的方法。((( 我希望您能理解我的问题。在选择“平原”或

我的问题是,如何在运行时内更改验证规则并刷新它们。例如(实际上只是一个例子):我们有一个包含内容的组合框vehicle

  • 汽车
  • 朴素的
和一个组合框轮数

  • 二,
  • 三,
  • 四,
对于用户来说,有必要在两个组合框中选择一个值,但如果用户选择了“普通”或“船”,则当然没有必要。当然,检查不是问题 组合框车轮计数验证中的设置,但当我更改组合框车辆中的设置时,组合框车轮计数的验证结果没有更改。 也有可能,使用IDataErrorInfo不是最好的方法。(((


我希望您能理解我的问题。

在选择“平原”或“船”时,只需禁用第二个控件。这样用户就不会做出错误的输入。或者有选择地隐藏数据。

与其拥有两个不相关的数据源并对其进行验证,不如让第二个combox只包含有效数据。这样可以防止让用户避免犯错误,而不是让他为一艘船选择4个轮子。将其视为主细节关系。您编写的代码可以做到这一点。这方面没有“最佳实践”僵尸群。如果您遇到问题,请创建原型并返回。