Форматирование нулевых значений как пустой строки? - PullRequest
13 голосов
/ 01 марта 2012

Я борюсь с моим первым набегом на форматирование строк WPF.Я хотел бы иметь возможность форматировать столбец текстового поля в сетке данных с пустой строкой, когда базовое значение равно нулю, а все остальные значения форматировать как 0,000.Тем не менее, мой XAML, кажется, не подходит для работы, так как он показывает пробелы для всех значений, а не только для нулей:

<DataGridTextColumn Header="dL" Binding="{Binding Path=Value.DLHistoric, StringFormat='{}{0.000;; }'" Width="Auto" />

Я использую оператор точки с запятой, как описано здесь и добавили пробел после второй точки с запятой, чтобы получить пустую строку.

Большое спасибо!

Обновление

Это помогает:

<DataGridTextColumn Header="dL" Binding="{Binding Path=Value.DLHistoric, StringFormat=0.000;;#}" Width="Auto" />

1 Ответ

3 голосов
/ 01 марта 2012

Пример IValueConverter

   [ValueConversion(typeof(string), typeof(string))]
    public class StringToFeetAndInches : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            string str = value as string;
            if (string.IsNullOrEmpty(str)) return str;
            str = str.Insert(1, "'");
            str = str + "\"";
            return str; 
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return 0;
        }
    } 

<UserControl.Resources>
<NS:StringToFeetAndInches x:Key="cStringToFeetAndInches"/>
</UserControl.Resource> 

<TextBlock Text="{Binding Path=Height, Converter={StaticResource cStringToFeetAndInches}}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...