Что такое Java EE?

Этот преобразователь значений должен выполнить трюк:

public class StringToNullableDecimalConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, 
        CultureInfo culture)
    {
        decimal? d = (decimal?)value;
        if (d.HasValue)
            return d.Value.ToString(culture);
        else
            return String.Empty;
    }

    public object ConvertBack(object value, Type targetType, 
        object parameter, CultureInfo culture)
    {
        string s = (string)value;
        if (String.IsNullOrEmpty(s))
            return null;
        else
            return (decimal?)decimal.Parse(s, culture);
    }
}

Объявить экземпляр этого конвертера в ressources:

<Window.Resources>
    <local:StringToNullableDecimalConverter x:Key="nullDecimalConv"/>
</Window.Resources>

И использовать его в вашей привязке:

<TextBox Text="{Binding Price, Converter={StaticResource nullDecimalConv}}"/>

Обратите внимание, что TargetNullValue здесь не подходит: он используется для определения того, какое значение должно использоваться, когда source привязки имеет значение null. Здесь Price не является источником, это свойство источника ...

143
задан nazar_art 22 June 2019 в 04:10
поделиться