У меня есть собственная DataGrid, которая создает столбец для каждого дня месяца и привязывает его содержимое к заданному списку.Значения списка являются двойными.
Теперь я хочу изменить ввод, чтобы пользователь мог написать 3,12 вместо 3,12.Я попытался изменить cultureinfo, который не имел никакого эффекта, а также попытался установить StringFormat для привязки, но это не сработало.Решением было бы написать конвертер, но я думаю, что могут быть более эффективные методы для достижения этой цели, тем более что я не хочу использовать специальный конвертер для более общей таблицы данных.
Так что мой вопрос, как бы выдостичь этого;что является лучшим способом.
РЕДАКТИРОВАТЬ: я нашел решение сразу после публикации моего вопроса ..
Wpf всегда использует культуру "en-US", вы можете изменить это поведение в целомзапрограммируйте, добавив
FrameworkElement.LanguageProperty.OverrideMetadata(
typeof(FrameworkElement),
new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
или просто измените его для конкретной привязки, подобной этой
Binding contentBinding = new Binding(PATH);
contentBinding.ConverterCulture = CultureInfo.CurrentCulture;
textColumn.Binding = contentBinding;
Обратите внимание, что вы должны сделать дополнительный шаг над привязкой, так как textColumn.Binding не имеет типаBinding, но BindingBase, который больше не предлагает свойство ConverterCulture.
Ответы StringFormat Проблемы с локализацией в wpf .