我有TextBox
绑定到整数属性。
如果TextBox
中没有任何有效文本属性设置为0,我该怎么办?
我真的认为这可以扩展,如果绑定失败,那么我们将源设置为默认值(T)。
我需要朝着正确的方向努力。
TargetNullValue
与我正在寻找的相反(我认为),当源为null时设置TextBox
文本。我想在TextBox
文本是无效的绑定值时将源设置为默认值。
答案 0 :(得分:4)
在绑定中应用以下Converter
应该可以解决问题:
public class TextConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
int actual = (int)value;
return actual.ToString();
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
string actual = (string)value;
int theValue = 0;
int.TryParse(actual, out theValue);
return theValue;
}
}
您的TextBox
绑定看起来像这样:
<TextBox Text="{Binding ... Converter={StaticResource convert}}"></TextBox>
将转换器定义为Window / Control /...
的资源