好吧,我發現答案自己)我伸出我的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代碼:
<DatePicker SelectedDate="{Binding Start, UpdateSourceTrigger=LostFocus,
ValidatesOnDataErrors=true, NotifyOnValidationError=true}" />
<DatePicker SelectedDate="{Binding Finish, UpdateSourceTrigger=LostFocus,
ValidatesOnDataErrors=true, NotifyOnValidationError=true}" />
感謝鏈接一個好的轉換器文章。但我如何使用convereter進行驗證? – Seekeer
你想如何處理錯誤?你想用ui展示還是扔掉它?如果你告訴我你想如何處理它,我可以給你一個例子。 – Tan
忘了解決我的問題。我想在UI中展示這一點。 – Seekeer