7
如何將驗證應用於WPF datepicker工具箱?如果選擇了無效日期,並且在某些情況下我有到達和離開日期,我希望它會出錯,所以我想驗證它以確保到達日期不晚於出發日期。日期選擇器驗證WPF
如何將驗證應用於WPF datepicker工具箱?如果選擇了無效日期,並且在某些情況下我有到達和離開日期,我希望它會出錯,所以我想驗證它以確保到達日期不晚於出發日期。日期選擇器驗證WPF
它似乎是一年以上日期選擇器驗證was a problem。無論如何,現在它的工作。
我不是一個WPF專家,BU我會盡力給你一個想法
寫一個驗證規則
public class DateExpiredRule : ValidationRule
{
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
DateTime orderDate = (DateTime)value;
return new ValidationResult(orderDate < DateTime.Now, "Please, enter date before Now()");
}
}
,那麼你可以將它連接到日期選擇器
<!-- since validation works hand by hand with binding,
I use hidden datepicker as binding source -->
<WPFToolkit:DatePicker Name="dateProvider" Visibility="Collapsed">
</WPFToolkit:DatePicker>
<WPFToolkit:DatePicker Name="notExpired">
<WPFToolkit:DatePicker.SelectedDate>
<Binding ElementName="dateProvider" Path="SelectedDate" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:DateExpiredRule/>
</Binding.ValidationRules>
</Binding>
</WPFToolkit:DatePicker.SelectedDate>
</WPFToolkit:DatePicker>
當發生驗證錯誤時指定控制模板。默認情況下,驗證錯誤更改邊框顏色鼠標結束控制時,我使用了額外的工具提示。
關於 '選擇器選取器' 驗證。
我知道,一個可以驗證規則使用自定義屬性(見AgeRangeRule在msdn例子)
也許你應該使用此功能,這樣
<local:MaxDateRule MaxDate="{Binding ElementName=DepartureDatePicker, Path=SelectedDate" />
但爲了申請綁定,您需要讓MAXDATE一個DependencyProperty ..你應該definetly問大師;)
而是強調你應該考慮攔截日期選擇價值變動(通過某種日期選擇器的「的onchange」事件)和accep的或拒絕改變。
非常感謝您的回覆。我有一個問題,我應該如何驗證日期選擇器中的日期。例如,我有抵達日期日期選擇器和出發日期日期選擇器。我應該如何驗證這兩項,以便抵達日期總是小於(之前),出發日期? – developer 2010-04-12 14:26:10