在 WPF 中,我试图将日期属性绑定在DataGrid
我只能在它绑定到 a 时进行排序DateTime
财产。
应用程序应以与用户的区域和语言设置相对应的格式显示日期。
问题是当日期是string
属性,它根据 Region 设置显示,但是当该属性绑定到DateTime
日期格式默认为美国而不是正确的区域。
所以如果它绑定到string
属性按列排序不起作用,如果它绑定到DateTime
属性,它不会转换到正确的区域。
这是因为绑定系统使用由FrameworkElement.Language http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.language.aspx属性,它不会自动匹配当前的文化(在我看来,这有点愚蠢,但事实就是这样......)。
幸运的是,有一个简单的方法可以解决这个问题,您只需要覆盖元数据Language
应用程序静态构造函数中的属性,如图所示 http://serialseb.blogspot.com/2007/04/wpf-tips-1-have-all-your-dates-times.html:
public partial class App : Application
{
static App()
{
FrameworkElement.LanguageProperty.OverrideMetadata(
typeof(FrameworkElement),
new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)