gpt4 book ai didi

wpf - 日期选择器验证 WPF

转载 作者:行者123 更新时间:2023-12-04 04:08:30 31 4
gpt4 key购买 nike

如何将验证应用于 WPF datepicker 工具包?如果选择了无效日期并且在某些情况下我有到达和离开日期,我希望它出错,所以我想验证它以查看到达日期不晚于出发日期。

最佳答案

似乎比日期选择器验证高一年 was a problem .无论如何,现在它可以工作了。

我不是 WPF 专家,但我会尝试给你一个想法

编写验证规则

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>

发生验证错误时指定控制模板。默认情况下,验证错误会更改边框颜色。当鼠标超过控制时,我使用了额外的工具提示。

alt text

source code

关于“选择器到选择器”验证。

我知道可以在验证规则中使用自定义属性(参见 msdn 示例中的 AgeRangeRule)

也许你应该像这样使用这个功能
<local:MaxDateRule MaxDate="{Binding ElementName=DepartureDatePicker, Path=SelectedDate" />

但是为了应用绑定(bind),您需要将 MaxDate 设置为 DependencyProperty .. 您应该明确地询问专家;)

而不是突出显示,您应该考虑拦截 datepicker 值更改(通过某种 datepicker 'onchange' 事件)并接受或拒绝更改。

关于wpf - 日期选择器验证 WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2610883/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com