SilverLight需要datepicker验证

时间:2011-04-13 14:26:52

标签: silverlight validation silverlight-4.0

我有一个SL4用户控件。它包含一个DatePicker。该控件公开DateTime依赖项属性(不可为空,因为它是必填字段)。我将DatePicker的SelectedDate(可以为Nullable< DateTime>)绑定到{RelativeSource Self}的DateTime属性,作为双向。除非在DatePicker中输入空日期,否则此绑定有效。使用ValidatesOnExceptions设置绑定,因此DatePicker的边框变为红色,但在工具提示中显示“输入格式不正确”。但应该说这个领域是必需的。

我尝试了一个自定义的IValueConverter,它使用自定义文本抛出异常(ValidationException,FormatException,InvalidOperationException。等),但它们都没有被处理。

我知道我的控件可以实现INotifyDataErrorInfo,但问题是null值甚至没有进入我的控件,因为我的DateTime不可为空,因此无需验证。

我可以很容易地完成这件事而没有任何约束力。或者通过绑定到隐藏的Nullable< DateTime>我的控件中的属性,验证此属性不为null,并公开另一个DateTime属性。或者通过提供ValueConverter将null转换为DateTime.MinValue或其他东西。

但是这些方法看起来都是解决方法,我希望有更好的解决方案。处理这个问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

即使null不是有效值,您基本上也必须使您将DatePicker绑定到可为空的DateTime的值。

然后你只需要依赖你的验证逻辑来​​确保你的应用程序永远不允许在值为空时处理/存储/无论如何。