Нужно форматировать даты в динамически построенных 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 

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

  • Форматирование двух-двух знаков после запятой
  • Размер изображения Android ImageView не масштабируется с исходным изображением
  • Формат метода (String, Object ) в типе String не применим для аргументов (...)
  • строка printf, элемент переменной длины
  • Как получить формат строки даты (шаблон) в java?
  • Как вы форматируете дату и время в Android?
  • Независимо от платформы size_t Спецификаторы формата в c?
  • Установить формат даты по умолчанию c #
  • Как преобразовать миллисекунды в читаемую человеком форму?
  • Преобразование строки в двойную - Java
  • Изменение формата даты на yyyy-mm-dd
  • Interesting Posts

    notifyDataSetChanged () делает обновление списка и прокручивает подсказки назад

    Windows 7, скорость загрузки снижается до 0 кбит / с, и загрузка должна быть перезапущена

    Скомпилировать время sizeof_array без использования макроса

    Есть ли простой способ отключить сенсорный планшет этого ноутбука?

    SOAP-клиент в .NET – ссылки или примеры?

    Что «отсутствует» в выпусках Visual Studio 2008 Express?

    Изменение цвета панели действий программно более одного раза

    Как я могу клонировать жесткий диск непосредственно на изображение vdi

    Расширения расширений клавиатуры Linux

    Как предотвратить несколько экземпляров активности при запуске с различными намерениями

    Ошибка «Диспетчер Struts не может быть найден» при развертывании приложения на WebLogic 12.1.3

    Поддержка многопользовательских ответов браузером

    В чем разница между методами bind и live в jQuery?

    В чем разница между моделью отношения сущности и реляционной моделью?

    Как игнорировать пространство имен при выборе узлов XML с помощью XPath

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