WPF绑定与源的无效值

时间:2010-02-18 22:00:43

标签: wpf data-binding binding textbox

我有TextBox绑定到整数属性。

如果TextBox中没有任何有效文本属性设置为0,我该怎么办?

我真的认为这可以扩展,如果绑定失败,那么我们将源设置为默认值(T)。

我需要朝着正确的方向努力。

TargetNullValue与我正在寻找的相反(我认为),当源为null时设置TextBox文本。我想在TextBox文本是无效的绑定值时将源设置为默认值。

1 个答案:

答案 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 /...

的资源