我有一个 WPF 应用程序,我在其中使用绑定到实体框架(带有 SQL 服务器)实体的日期字段的日期选择器。我将其绑定如下:
<DatePicker x:Name="dtComplete" Style="{StaticResource FTC_DatePicker}" Grid.Column="2" Grid.Row="7" Grid.ColumnSpan="3"
Text="{Binding dtComplete, Mode=TwoWay, ValidatesOnDataErrors=True}"/>
绑定工作正常,可以更新到实体。
我的问题是,当基础数据库字段为空时,我会选择我想要的日期水印,但该水印正在被验证并返回为不是日期格式。我想保留水印,但在用户更改输入之前没有验证触发器。另外,我想保留ValidatesOnDataErrors=True
,因为我在其他地方使用它来评估业务逻辑。
要明白我的意思,这是一个使用日期选择器的表单,其日期为空值,您可以看到验证错误:
调试时的输出窗口给出以下验证转换错误:
System.Windows.Data 错误:7:ConvertBack 无法转换值“”(类型“字符串”)。绑定表达式:路径=dtComplete;DataItem='job_BF0D6052EEADCDA3C2B6D1A174D77C322D5AB16A035F214705610767131A80F0' (HashCode=17930557); 目标元素是'DatePicker'(名称='dtComplete');目标属性是“文本”(类型“字符串”) FormatException:“System.FormatException:字符串未被识别为有效的 DateTime。在 System.DateTime.Parse(String s, IFormatProvider provider) 在 System.Convert.ToDateTime(String value, IFormatProvider provider) 在 System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) 在 System.Windows.Data.BindingExpression .ConvertBackHelper(IValueConverter转换器,对象值,类型sourceType,对象参数,
在用户更改输入之前,有人可以帮我摆脱这个验证错误吗?
提前致谢