删除文本后,DatePicker不更新值

时间:2016-05-11 20:49:16

标签: c# wpf .net-4.0 controls

我有一个DatePicker元素和一个按钮。如果我选择了某个日期,然后从DatePickerTextBox内的DatePicker删除了该文字,并且在不关注其他内容的情况下,点击我的Button

MyDatePicker.SelecteDate赢了,但是MyDatePicker.Text会。

如何避免此问题?

1 个答案:

答案 0 :(得分:0)

我能解决这个问题的唯一方法是用我的自定义替换密封的DatePickerTextBox,并在override事件中添加KeyDown

protected override void OnPreviewKeyDown(KeyEventArgs e)
{
    base.OnPreviewKeyDown(e);

    if (e.Key == Key.Back || e.Key == Key.Delete)
    {
        if (SelectionLength == Text.Length ||
           (Text.Length == 1 && (SelectionStart == 0 && e.Key == Key.Delete || SelectionStart == 1 && e.Key == Key.Back)))
            Text = null;

            RaiseEvent(new RoutedEventArgs(TextChangedEvent));
    }
}

当然,我必须替换DatePicker的主题才能开始使用我的自定义TextBox