При работе в DataGridView данные с типом Decimal отображаются с запятой, можно ли настроить проект или DataGridView, так что бы он работал с точками?
P.S. Не меняя при этом национальные настройки операционной системы.
Есть несколько вариантов.
Во-первых, можно задать новую культуру для текущего потока. Делается это так:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Здесь выбрана культура, у которой используется точка в качестве десятичного разделителя. При этом, естественно, будет использованы настройки этой культуры для всех типов данных: дата-время, валюта, проценты и прочее.
Возможно, вас устроит универсальная инвариантная культура:
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
Если же нужна конкретная культура, но лишь с одной изменённой настройкой, то:
var myCulture = new CultureInfo("ru-RU");
myCulture.NumberFormat.NumberDecimalSeparator = ".";
Thread.CurrentThread.CurrentCulture = myCulture;
Во-вторых, можно задать настройки формата или культуру только для одного компонента. См. FormatProvider.
dataGridView.Columns[2].DefaultCellStyle.FormatProvider = myCulture;
В примере меняются настройки определённой колонки в гриде. Культуру, естественно, можно выбрать любую, как в примерах выше.
Также обратите внимание на свойство Format. Оно позволяет, например, гибко задавать настройки вывода даты-времени: скажем, только месяц показать из типа DateTime. Для decimal оно особо неприменимо.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
При извлечении имени Action из TestCase я получаю это:
Строю график, отражающий динамику прохождения тестов пользователемНа оси Y отражается коэффициент(результат), на Х - дата выполнения