Установить формат строки без запятых в столбце DataGridNumericUpDownColumn

#wpf #xaml #string-formatting #mahapps.metro

#wpf #xaml #форматирование строки #mahapps.metro

Вопрос:

Я использую дизайн-фреймворк mahapps.metro для datagridnumericupdowncolumn:https://mahapps.com/controls/datagrid.html

Вот пример со stringformat=C. Но вместо этого мне нужен D только для чисел без запятой: форматы строк, определенные Microsoft

 <Controls:DataGridNumericUpDownColumn Binding="{Binding DECIMAL_BINDING_VALUE}" StringFormat="D" Minimum="1" HideUpDownButtons="True"/>
  

Значение по умолчанию для привязанной переменной DECIMAL_BINDING_VALUE равно 12345. Если я открываю окно, Visual Studio выдает исключение:
Система.Исключение FormatException: «Формат недопустим». Если я использую String.Format= C Я не получаю ошибок….

Как я могу определить правильный StringFormat для no commata с помощью DatagridNumericUpDownColumn в XAML?

Ответ №1:

Попробуйте:

 <Controls:DataGridNumericUpDownColumn Binding="{Binding DECIMAL_BINDING_VALUE, StringFormat='{0:D}'}" Minimum="1" HideUpDownButtons="True"/>
  

С StringFormat внутри Binding .

Вот как это делается в базе привязки.Документы о свойствах StringFormat для StringFormat.

Комментарии:

1. Черт… Когда я нажимаю на ячейку, выходные данные отправляются в систему. Windows. Ошибка данных: 6: преобразователю ‘StringFormat’ не удалось преобразовать значение ‘0’ (тип ‘Десятичный’); будет использовано резервное значение, если оно доступно. Выражение привязки:Path=DECIMAL_BINDING_VALUE; DataItem=’TBL_MYSPCLTABLE’ (хэш-код=41757008); целевой элемент — ‘DataGridCell’ (Name=»); целевое свойство — ‘CellContent’ (тип ‘Строка’) Исключение FormatException:’Система. Исключение FormatException: формат недопустим.