【发布时间】:2018-11-15 09:50:50
【问题描述】:
我在 WPF 的窗口中有一个 DataGrid,它可以有不同的列(以编程方式选择)。它们中的许多通常是日期,但它们默认格式为 mm/dd/yyyy hh:mm:ss tt。 但是,我需要所有显示为 dd/mm/yyyy 的字段。我可以找到如何在 xaml 定义的列中执行此操作,但我的所有列都是编程的,因此我需要在 c# 中执行此操作或在 XAML 中定义所有日期时间列以这种方式格式化。
【问题讨论】:
我在 WPF 的窗口中有一个 DataGrid,它可以有不同的列(以编程方式选择)。它们中的许多通常是日期,但它们默认格式为 mm/dd/yyyy hh:mm:ss tt。 但是,我需要所有显示为 dd/mm/yyyy 的字段。我可以找到如何在 xaml 定义的列中执行此操作,但我的所有列都是编程的,因此我需要在 c# 中执行此操作或在 XAML 中定义所有日期时间列以这种方式格式化。
【问题讨论】:
发现能够通过处理 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" };
}
【讨论】:
编写一个转换器,如WPF datagrid date column with system custom short date format 的答案之一所述。
通过将执行传递给代码而不是 xaml,您可以完全控制输出的字符串。我用我的来显示长日期和短时间的混合(这混淆了 xaml 解析器)。
【讨论】: