【问题标题】:Datetime format programmatically WPF Datagrid日期时间格式以编程方式 WPF Datagrid
【发布时间】:2018-11-15 09:50:50
【问题描述】:

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

【问题讨论】:

    标签: c# wpf datagrid


    【解决方案1】:

    发现能够通过处理 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

    【讨论】:

    • 当 AutogenerateColumns 为 false 时,这对我不起作用。该事件根本没有触发。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-03-21
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 2010-12-10
      • 1970-01-01
      • 2010-10-11
      • 2018-08-21
      • 2018-11-20
      相关资源
      最近更新 更多