如果DatePickerTextBox保留为空,如何将绑定属性设置为null

时间:2016-03-11 11:07:47

标签: c# wpf xaml

我的DatePickerTextBox绑定到DateTime?类型的属性(允许空值)

如果DatePickerTextBox为空,我想将此属性设置为null。

我目前的做法:

    private void TextChanged_Handler(object sender, TextChangedEventArgs e)
    {
        var dateTimePickerTextBox = (DatePickerTextBox)sender;
        if (dateTimePickerTextBox.Text == string.Empty)
            this.MyBindingObj.MyDate = null;
    }

这样做有效,但它的缺点是DatePickerTextBox UI被标记为红色(错误),因为文本和DateTime之间的绑定不成功。虽然在幕后一切正常。

我想知道是否有更清洁的方法来做到这一点。

1 个答案:

答案 0 :(得分:0)

我找到了一种解决方法,只需将dateTimePickerTextBox.Text = null;添加到上一个代码中:

    private void TextChanged_Handler(object sender, TextChangedEventArgs e)
    {
        var dateTimePickerTextBox = (DatePickerTextBox)sender;
        if (dateTimePickerTextBox.Text == string.Empty)
        {
            this.MyBindingObj.MyDate = null;
            // Added this to avoid validation error:
            dateTimePickerTextBox.Text = null;
        }
    }