我在WPF的窗口中有一个DataGrid,它可以有不同的列(以编程方式选择)。通常它们很多都是日期,但是默认情况下它们的格式为mm / dd / yyyy hh:mm:ss tt。 但是,我需要所有显示为dd / mm / yyyy的字段。我可以在xaml定义的列中找到如何做的方法,但是我所有的列都是编程的,因此我需要在c#或XAML中定义所有以这种方式格式化的datetime列。
答案 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" };
}
答案 1 :(得分:0)
编写一个转换器,如对WPF datagrid date column with system custom short date format的答案之一所述。
通过将执行传递给代码而不是xaml,您可以完全控制输出的字符串。我用我的文件显示了长时间和短时间的混合(这混淆了xaml解析器中的内容)。