日期时间格式以编程方式WPF Datagrid

时间:2018-11-15 09:50:50

标签: c# wpf datagrid

我在WPF的窗口中有一个DataGrid,它可以有不同的列(以编程方式选择)。通常它们很多都是日期,但是默认情况下它们的格式为mm / dd / yyyy hh:mm:ss tt。 但是,我需要所有显示为dd / mm / yyyy的字段。我可以在xaml定义的列中找到如何做的方法,但是我所有的列都是编程的,因此我需要在c#或XAML中定义所有以这种方式格式化的datetime列。

2 个答案:

答案 0 :(得分:0)

通过处理DataGrid的AutoGeneratingColumn并在类型为DateTime时添加绑定,可以对所有DateTime列进行格式化

if (e.PropertyType == Type.GetType("System.DateTime")) {
    DataGridTextColumn col = e.Column as DataGridTextColumn;
    col.Binding = new Binding(e.PropertyName) { StringFormat = "dd/MM/yyyy" };
}

在这里找到解决方案: https://social.msdn.microsoft.com/Forums/vstudio/en-US/f32a6639-60c8-47c7-9ae0-dceb221fd9cf/string-format-for-the-datagrid-column?forum=wpf

答案 1 :(得分:0)

编写一个转换器,如对WPF datagrid date column with system custom short date format的答案之一所述。

通过将执行传递给代码而不是xaml,您可以完全控制输出的字符串。我用我的文件显示了长时间和短时间的混合(这混淆了xaml解析器中的内容)。