Как поставить запятую в разделитель тысяч в wpf - PullRequest
0 голосов
/ 17 марта 2020

У меня проблема с запятой в разделителе тысяч в WPF. Числа находятся в текстовых полях, поэтому всякий раз, когда число вводится, оно должно отображаться таким образом. Я пробовал StringFormat, но он не работал.

  <TextBox Text="{Binding ParcelDetails.OverrideTotalFloorArea.Value,StringFormat='\{0:$#,##0\}', Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, ValidatesOnExceptions= False}"  
                                             IsEnabled="{Binding ParcelDetails.OverrideTotalFloorArea.IsEnabled, UpdateSourceTrigger=PropertyChanged}"
                                             Visibility="{Binding ParcelDetails.OverrideTotalFloorArea.IsVisible, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource BoolToVisibility}}"
                                             Margin="15,2,3,3" 
                                             Width="130" >

1 Ответ

0 голосов
/ 18 марта 2020

Я просто публикую пример конвертера для вас. Вы можете редактировать или оптимизировать код согласованно.

public class Converter : IValueConverter
    {
        public static Converter Instance { get; } = new Converter();

        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            decimal a;
            string val = System.Convert.ToString(value);
            if (decimal.TryParse(val,out a))
            {
                var index = val.IndexOf('.');
                if (index>3)
                {
                    val = val.Insert(index - 3, ",");
                    return val;
                }
            }
            return "";
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotSupportedException();
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...