我们在运行时将未知结果集绑定到WPF DataGrid.我们的一些列将包含DateTime值,我们需要正确格式化这些日期时间字段.在设计时不知道哪些列将是DateTime字段,我们如何在运行时格式化列?
我们使用DataTable的DefaultView绑定到WPF DataGrid.
在WPF中,我试图在a中绑定一个日期属性DataGrid,我只能对它绑定一个DateTime属性进行排序.
应用程序应以与用户的"区域和语言"设置对应的格式显示日期.
问题是,当日期是string属性时,它会根据区域设置显示,但是当属性绑定到DateTime日期格式时,默认为美国而不是正确的区域.
因此,如果它绑定到string属性,则按列排序不起作用,如果它绑定到DateTime属性,则它不会转换为正确的区域.
我有一个WPF数据网格,其绑定到类对象,如下所示:
<DataGridTextColumn Header="Order Date" Binding="{Binding OrderDate }" />
Run Code Online (Sandbox Code Playgroud)
该类中的属性非常简单,如下所示:
public DateTime OrderDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
当我填充这个属性时,我只是发送DateTime.Date(仅限日期,而不是时间):
.Select(
r =>
new Customer
{
Persona = r.Persona,
CustomerName = r.CustomerName,
Email = r.Email,
Organization = r.Organization,
PhoneNumber = r.PhoneNumber,
Street = r.Street,
Suburb = r.Suburb,
Postcode = r.Postcode,
OrderDate = r.OrderDate.Date
}))
Run Code Online (Sandbox Code Playgroud)
不幸的是,这并没有反映在我的WPF数据网格中,因为它显示了日期,但它也显示了时间(无处不在)12:00:00AM.我应该如何让我的WPF数据网格仅显示日期?