TextBox在清除时未显示TargetNullValue

时间:2013-08-12 16:51:35

标签: wpf

我有一个TextBox,其TargetNullValue设置为“0.00”。在初始加载时,窗口显示0.00,因为绑定属性为null。 现在这里是我困惑的地方: 如果我将TextBox的值更改为0.00以外的任何值以包含空格,然后清除TextBox,我得到0.00。如果TextBox的值是0.00,并且我清除TextBox,我得到一个空的TextBox。即使我总是引发PropertyChanged通知,即使后备属性值没有改变,也会发生这种情况。

<TextBox Margin="5" Width="100" MaxLength="6" Text="{Binding FeeToleranceLevel,
         Mode=TwoWay, UpdateSourceTrigger=PropertyChanged,
         TargetNullValue='0.00', 
         ValidatesOnDataErrors=True,
         Converter={StaticResource ToleranceLvlCapConverter}}"
         HorizontalAlignment="Left">

public string FeeToleranceLevel
{
    get { return _feeToleranceLevel; }
    set
    {
        if(_feeToleranceLevel != value)
        {
            _feeToleranceLevel = value;
        }
        RaisePropertyChanged("FeeToleranceLevel");
    }
}

public sealed class ToleranceLvlCapConverter : IValueConverter
{
    #region Implementation of IValueConverter
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if ((value != null) && (string.IsNullOrEmpty(value.ToString())))
            return null;

        return value;
    }
}

0 个答案:

没有答案