gpt4 book ai didi

c# - DisplayFormat 与 CultureInfo DateTime

转载 作者:太空狗 更新时间:2023-10-30 00:54:49 26 4
gpt4 key购买 nike

我正在尝试将公共(public)属性的 DisplayFormat 设置为当前的 cultureinfo 日期时间格式。该类将用于 Silverlight Datagrid。

    [DisplayFormat(DataFormatString=CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern.ToString())]
public DateTime createDate { get; set; }

它说,只有参数只能是常量和typeof参数...

有什么想法吗?

更新,我尝试了 Lukazoid 解决方案,但 Silverlight 数据网格忽略了数据注释。由于本地化,数据网格列在代码隐藏中添加。

列看起来像这样:

        DataGridTextColumn tcCreateDate = new DataGridTextColumn();
tcCreateDate.Header = SilverlightApplication.Resources.ContentGrid.dgCreateDate;
tcCreateDate.Binding = new Binding("createDate");

最佳答案

属性值必须是常量或 typeof 语法的结果。

如果要对当前区域性使用短日期格式,请使用以下格式字符串:

[DisplayFormat(DataFormatString = "{0:d}")]

更新

我可以看到您更新的代码以添加 DataGridTextColumn,试试这个来添加 StringFormat:

DataGridTextColumn tcCreateDate = new DataGridTextColumn();
tcCreateDate.Header = SilverlightApplication.Resources.ContentGrid.dgCreateDate;
tcCreateDate.Binding = new Binding("createDate") { StringFormat = "{0:d}" };

默认情况下,silverlight 使用 en-US 作为所有绑定(bind)的当前区域性(无论您的系统设置如何),这意味着 StringFormat 将生成美国格式的日期。参见 here寻求确保您当前设置得到考虑的解决方案。

关于c# - DisplayFormat 与 CultureInfo DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11562512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com