WPF Non-Nullable Databinding默认为已清除的TextBox?

时间:2010-02-19 17:44:40

标签: wpf data-binding textbox

我有一个WPF TextBoxText属性绑定到一个int值(不可为空)。加载表单时,文本框中包含0。有没有办法让这个文本框默认为空?

我在表单加载时在后面的代码中将值设置为null,但似乎在某些地方,这会抛出隐藏给我的错误,因为null不能进入int值..这是不是很糟糕实践?我有很多这样的情况,DateTime被设置,当屏幕加载时,日期是1/1/0001,这对用户来说是丑陋的。我可以将日期默认为今天的日期,但在某些情况下,如生日,这是没有意义的。

2 个答案:

答案 0 :(得分:2)

您应该使用Binding单向BindingMode=OneWayToSource。 有关详细信息,请参阅MSDN

答案 1 :(得分:1)

您可以使用值转换器(请参阅IValueConverter),或从视图模型中将int公开为string

public string Value
{
    get
    {
        if (intValue == 0)
        {
            return string.Empty;
        }

        return intValue.ToString();
    }
    set
    {
        // do conversion here
    }
}