代码之家  ›  专栏  ›  技术社区  ›  SuperJMN

ReactiveUI.验证和嵌套验证

  •  0
  • SuperJMN  · 技术社区  · 2 年前

    我想知道ReactiveUI.Validation是否支持嵌套验证。例如,只有当其子ViewModel有效时才有效的父ViewModel。

    类似于以下内容:

    public class ParentViewModel : ReactiveValidationObject
    {
        public Parent()
        {
             var child1 = new ChildViewModel();
             var child2 = new ChildViewModel();
    
             this.ValidationRule(child1);
             this.ValidationRule(child2);
        }
    }
    
    0 回复  |  直到 2 年前
        1
  •  0
  •   Progman    2 年前

    您可以使用 IsValid() 获取 IObservable<bool> 实例以获取内部模型的有效状态。在您的 ValidationRule() 方法 ValidationRule(IObservable<bool>, string) 过载。请参见以下示例:

    public class ParentViewModel : ReactiveValidationObject
    {
        public Parent()
        {
             var child1 = new ChildViewModel();
             var child2 = new ChildViewModel();
    
             this.ValidationRule(child1.IsValid(), "the first child model is invalid");
             this.ValidationRule(child2.IsValid(), "the second child model is invalid");
        }
    }