Нужно форматировать даты в динамически построенных WPF DataGrid

Мы связываем неизвестный набор результатов с WPF DataGrid во время выполнения. Некоторые из наших столбцов будут содержать значения DateTime, и нам необходимо правильно форматировать эти поля времени. Не зная, какие столбцы будут полями DateTime во время разработки, как мы можем форматировать столбцы во время выполнения?

Мы используем DataView для DataTable для привязки к DataGrid WPF.

как насчет

 

Я думаю, что это лучше, чем писать большие fragmentы кода

Я понял, как это сделать в коде … надеюсь, есть способ имитировать это в XAML. (Пожалуйста, напишите, если вы найдете рабочий образец XAML.)

Чтобы выполнить это в коде, добавьте обработчик событий для события AutoGeneratingColumn Grid, например:

 private void ResultsDataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e) { if (e.PropertyType == typeof(DateTime)) { DataGridTextColumn dataGridTextColumn = e.Column as DataGridTextColumn; if (dataGridTextColumn != null) { dataGridTextColumn.Binding.StringFormat = "{0:d}"; } } } 

Эй, вы можете установить информацию о культуре локали в конструкторе формы WPF как

this.Language = XmlLanguage.GetLanguage (CultureInfo.CurrentCulture.IetfLanguageTag);

Или вы можете включить разметку xml xml: lang = “en-GB” в разметке заголовка windows

  

Я бы использовал DataTemplate с DataType Date или DateTime (в зависимости от того, как он будет проходить через). Поместите TextBlock в DataTemplate с помощью StringFormat в привязке.

Что-то вроде этого должно работать (непроверено)

    

Или, если вы хотите, чтобы он применялся только в сетке

       ...  

dataGridTextColumn.Binding.StringFormat = “{0: dd / MM / yyyy}”;

работал красиво

Я запускаю этот путь. его работа завершена.

  

Ответ FarrEver, 11 мая, хорош, но мне это не действует. Я все еще получаю американский миллион / дд / гггг вместо моего немецкого dd / mm / yyyy. Поэтому я предлагаю найти региональные настройки компьютера и использовать его в StringFormat

  Private Sub DGrid_AutoGeneratingColumn(ByVal sender As System.Object, ByVal e As Microsoft.Windows.Controls.DataGridAutoGeneratingColumnEventArgs) If e.PropertyType Is GetType(DateTime) Then Dim dataGridTextColumn As DataGridTextColumn = TryCast(e.Column, DataGridTextColumn) If dataGridTextColumn IsNot Nothing Then Dim ShortDatePattern As String = System.Globalization.DateTimeFormatInfo.CurrentInfo.ShortDatePattern dataGridTextColumn.Binding.StringFormat = "{0:" + ShortDatePattern + "}" '"{0:dd/MM/yyyy}" End If End If End Sub 

Смотри также: мой блог

  • Строка Parse C # в DateTime
  • Как выводить сериализованные данные представления JSON в виде массива объектов, а не обертывать внешний объект?
  • Лисп форматирует символ несколько раз
  • Форматирование строки в столбцы с использованием String Interpolation
  • Изменение формата даты на yyyy-mm-dd
  • Как анализировать дату в Date?
  • Как вы форматируете дату и время в Android?
  • Android TextView Обоснование текста
  • Номер формата как фиксированная ширина, с ведущими нулями
  • Как использовать java.String.format в Scala?
  • Размер изображения Android ImageView не масштабируется с исходным изображением
  • Interesting Posts

    Selenium: Можно ли установить любое значение атрибута WebElement в Selenium?

    Ошибка аутентификации MongoDB 3.2

    Что означает «Использование неназначенной локальной переменной»?

    Каковы основные виды использования yield () и чем оно отличается от join () и interrupt ()?

    Мутирование дерева выражений предиката для задания другого типа

    Нет исключения при тике cast с нулевым значением в java

    Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует указанному имени ‘android: TextAppearance.Material.Widget.Button.Borderless.Colored’

    Windows Phone 7 и собственный C ++ / CLI

    Метод синхронизации NSUserDefaults

    Окно удаленного рабочего стола вернется к ярлыку хоста

    Обнаружение полукруга в opencv

    Как я могу сужать попытки входа пользователя в PHP?

    Как проверить загруженный файл, будь то изображение или другой файл?

    Как я могу запросить нулевые значения в структуре сущностей?

    Как peer-to-peer работает через Интернет?

    Давайте будем гением компьютера.