gpt4 book ai didi

.net - 绑定(bind)值为空时出现 WPF 日期选择器验证错误

转载 作者:行者123 更新时间:2023-12-04 23:57:35 25 4
gpt4 key购买 nike

我有一个 WPF 应用程序,我在其中使用绑定(bind)到 Entity Framework (带有 SQL 服务器)实体的日期字段的日期选择器。我将其绑定(bind)如下:

<DatePicker x:Name="dtComplete" Style="{StaticResource FTC_DatePicker}" Grid.Column="2" Grid.Row="7" Grid.ColumnSpan="3"                                            
Text="{Binding dtComplete, Mode=TwoWay, ValidatesOnDataErrors=True}"/>

绑定(bind)工作正常,可以更新到实体。

我的问题是,当底层数据库字段为空时,我得到 选择日期水印,这是我想要的,但该水印正在被验证并返回为不是日期格式。我想保留水印,但在用户更改输入之前没有验证触发器。另外,我想保留 ValidatesOnDataErrors=True因为我在其他地方使用它来评估业务逻辑。

要明白我的意思,这是一个使用日期选择器的表单,其日期为空值,您可以看到验证错误:
wpf datepicker validation error

调试时的输出窗口给出以下验证转换错误:

System.Windows.Data Error: 7 : ConvertBack cannot convert value '' (type 'String'). BindingExpression:Path=dtComplete; DataItem='job_BF0D6052EEADCDA3C2B6D1A174D77C322D5AB16A035F214705610767131A80F0' (HashCode=17930557); target element is 'DatePicker' (Name='dtComplete'); target property is 'Text' (type 'String') FormatException:'System.FormatException: String was not recognized as a valid DateTime. at System.DateTime.Parse(String s, IFormatProvider provider) at System.Convert.ToDateTime(String value, IFormatProvider provider) at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) at System.Windows.Data.BindingExpression.ConvertBackHelper(IValueConverter converter, Object value, Type sourceType, Object parameter, CultureInfo culture)'



在用户更改输入之前,有人可以帮我摆脱这个验证错误吗?

提前致谢

最佳答案

弄清楚了:

我正在绑定(bind)到 hte datePicker 的文本值,因此它试图将水印文本验证为日期,但我真正应该做的是绑定(bind)到 selectedDate 属性,如下所示:

<DatePicker x:Name="dtComplete" Style="{StaticResource FTC_DatePicker}" Grid.Column="2" Grid.Row="7" Grid.ColumnSpan="3"                                                                                        
SelectedDate="{Binding dtComplete, Mode=TwoWay, ValidatesOnDataErrors=True}" />

现在它的行为如我所愿,选择日期水印仍然存在并且绑定(bind)日期值有效。现在都太明显了。简单修复

关于.net - 绑定(bind)值为空时出现 WPF 日期选择器验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15298781/

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