validationWPF中的两个属性

我有这样的属性类:

public DateTime Start { get; set; } public DateTime Finish { get; set; } 

而这样的ViewModel:

      

我想启用validation。 因此,当“开始”>“完成”时,必定存在错误。 提供此类validation的最简单方法是什么?

好吧,我自己找到了答案)我扩展了我的TimeRange类来实现IDataErrorInfo接口,如下所示:

 public class TimeRange : IDataErrorInfo { public DateTime Start { get; set; } public DateTime Finish { get; set; } #region IDataErrorInfo Members public string Error { get { throw new NotImplementedException(); } } private bool _IsValid() { return Finish > Start; } public string this[string columnName] { get { string result = null; if (columnName == "Start" && !_IsValid()) result = "Start must occure before Finish!"; else if (columnName == "Finish" && !_IsValid()) result = "Finish must occure after Start!"; return result; } } #endregion } 

然后将我的xaml代码更改为:

    

您可以使用Binding.ValidationRules

您可以在此处找到MSDN示例。

比较get的值。 如果Start> Finish返回null或其他内容。