flo*_*oat 4 c# localization data-annotations
我正在尝试将公共属性的DisplayFormat设置为当前的cultureinfo日期时间格式.该类将用于Silverlight Datagrid.
[DisplayFormat(DataFormatString=CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern.ToString())]
public DateTime createDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
它说,只有参数只能是常数和typeof参数...
有任何想法吗?
更新,我尝试了Lukazoid解决方案,但Silverlight数据网格忽略了数据注释.由于本地化,datagrid列在代码隐藏中添加.
该列如下所示:
DataGridTextColumn tcCreateDate = new DataGridTextColumn();
tcCreateDate.Header = SilverlightApplication.Resources.ContentGrid.dgCreateDate;
tcCreateDate.Binding = new Binding("createDate");
Run Code Online (Sandbox Code Playgroud)
属性值必须是常量或typeof语法的结果.
如果要对当前区域性使用短日期格式,请使用以下格式字符串:
[DisplayFormat(DataFormatString = "{0:d}")]
Run Code Online (Sandbox Code Playgroud)
更新
我可以看到你添加的更新代码DataGridTextColumn,试试这个添加StringFormat:
DataGridTextColumn tcCreateDate = new DataGridTextColumn();
tcCreateDate.Header = SilverlightApplication.Resources.ContentGrid.dgCreateDate;
tcCreateDate.Binding = new Binding("createDate") { StringFormat = "{0:d}" };
Run Code Online (Sandbox Code Playgroud)
默认情况下,silverlight使用en-US作为所有绑定的当前文化(无论您的系统设置如何),这意味着StringFormat将生成美国格式的日期.请参阅此处以获取解决方案,以确保将当前设置考虑在内.
| 归档时间: |
|
| 查看次数: |
6207 次 |
| 最近记录: |