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或其他内容。