我有一个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;
}
}