我有一个WPF TextBox
,Text
属性绑定到一个int值(不可为空)。加载表单时,文本框中包含0。有没有办法让这个文本框默认为空?
我在表单加载时在后面的代码中将值设置为null,但似乎在某些地方,这会抛出隐藏给我的错误,因为null不能进入int值..这是不是很糟糕实践?我有很多这样的情况,DateTime被设置,当屏幕加载时,日期是1/1/0001,这对用户来说是丑陋的。我可以将日期默认为今天的日期,但在某些情况下,如生日,这是没有意义的。
答案 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
}
}