【问题标题】:DatePicker not updating value after deleting textDatePicker 删除文本后不更新值
【发布时间】:2016-05-11 20:49:15
【问题描述】:

我有一个DatePicker 元素和一个按钮。如果我选择某个日期,然后从DatePicker 内的DatePickerTextBox 中删除文本,并且不失去对其他内容的关注,我点击我的Button

MyDatePicker.SelecteDate 不会为空,但MyDatePicker.Text 会。

如何避免这个问题?

【问题讨论】:

    标签: c# wpf .net-4.0 controls


    【解决方案1】:

    我可以解决此问题的唯一方法是用我的自定义替换密封的 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 2017-04-04
      • 2012-04-21
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多