DateTime格式在用作DataGrid ItemSource时发生更改

本文关键字:ItemSource DataGrid 格式 DateTime | 更新日期: 2023-09-27 18:24:02

我有一个类,它有两个属性,一个字符串和DateTime。DateTime属性在构造函数中分配了一个值:

this._lastCheckIn = DateTime.Parse(lastCheckIn.ToString("dd/MM/yyyy HH:mm"));

其中lastCheckIn变量被传递给构造函数。

我可以在运行时看到,对象是用我在这里指定的格式用DateTime创建的,但当它显示在DataGrid上时,格式会恢复为US。

以前,我的对象中有一个字符串,而不是DateTime,它正确地显示了格式,但当我在数据网格中按升序或降序排序时,却没有正确排序。2015年1月25日将高于2015年2月24日。

不太确定我在哪里出了问题,任何帮助都将不胜感激!

DateTime格式在用作DataGrid ItemSource时发生更改

您可以在列绑定中选择字符串格式

<DataGrid>
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding MyDate, StringFormat='{0:dd.MM.yy '}}" />
    </DataGrid.Columns>
</DataGrid>

日期使用运行应用程序的系统区域性显示。您可以更改数据网格本身的日期-时间格式,也可以在启动时将其应用于整个应用程序。

var culture = Thread.CurrentThread.CurrentCulture;
culture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy HH:mm";
var uiCulture = Thread.CurrentThread.CurrentUICulture;
uiCulture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy HH:mm";