我有一个DatePicker
元素和一个按钮。如果我选择了某个日期,然后从DatePickerTextBox
内的DatePicker
删除了该文字,并且在不关注其他内容的情况下,点击我的Button
:
MyDatePicker.SelecteDate
赢了,但是MyDatePicker.Text
会。
如何避免此问题?
答案 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
。