处理数据绑定WPF日期选择器ArgumentOutOfRangeException

时间:2014-12-11 22:56:15

标签: wpf validation datepicker

我有一个用户控件,可以处理创建和编辑对象。我在DatePicker上设置了一周的BlackOutDates。如果DatePicker的SelectedValue属性绑定的日期属于中断日期,则会抛出ArgumentOutOfRangeException(如下所示:http://msdn.microsoft.com/en-us/library/system.windows.controls.datepicker.selecteddate%28VS.95%29.aspx)。

如何在数据绑定期间发生此异常?绑定的ExceptionValidationRule仅处理更新源属性时发生的异常。理想情况下,我想显示已设置的任何值,但验证失败。就像你有一个带有验证规则的文本框,表示它只允许字母“a”。如果将属性集绑定到字符串“zzzzz”,它不会炸毁应用程序并且无法显示该值,它将无法验证。

1 个答案:

答案 0 :(得分:0)

在考虑之后,我想我错误地混淆了限制日期和验证的概念。日期选择器的中断日期是表示功能,而不是验证机制。所以我所做的就是当控件加载时,如果我的绑定对象的日期发生在一个限制日期,我就不会把它变黑。您无法选择黑屏,因此这是唯一的选择。在选定的日期更改事件处理程序中,我重新评估中断日期,如果所选日期不再出现,则将其标记为黑色。因此,一旦我选择了有效日期,我就无法将其更改为黑屏日期。然后我添加了一个额外的验证规则,以确保如果所选日期出现在无效日期,则控件无法保存。