wpf - DateTime 未在 Datagrid、ListView 中以当前区域性格式显示

标签 wpf datetime listview mvvm

在 WPF 中,我试图在 DataGrid 中绑定(bind)日期属性如果它绑定(bind)到 DateTime,我只能排序属性(property)。

应用程序应以与用户的区域和语言设置相对应的格式显示日期。

问题是当日期是 string属性,它根据区域设置显示,但是当属性绑定(bind)到 DateTime日期格式默认为美国而不是正确的地区。

因此,如果它绑定(bind)到 string属性按列排序不起作用,如果它绑定(bind)到 DateTime属性,它不会转换为正确的区域。

最佳答案

这是因为绑定(bind)系统使用 FrameworkElement.Language 定义的区域性。属性,它不会自动匹配当前的文化(这有点傻 IMO,但就是这样......)。

幸运的是,有一个简单的方法,您只需要覆盖 Language 的元数据。应用程序静态构造函数中的属性,as shown here :

public partial class App : Application
{
    static App()
    {
        FrameworkElement.LanguageProperty.OverrideMetadata(
            typeof(FrameworkElement),
            new FrameworkPropertyMetadata(
                XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
    }
}

关于wpf - DateTime 未在 Datagrid、ListView 中以当前区域性格式显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3630967/

相关文章:

WPF:System.Windows.Interop.InteropBitmap 到 System.Drawing.Bitmap

c# - 水平对齐包裹面板中的子元素

.net - 如何转换vb.net中的日期格式?

Javascript 没有正确解析日期

javascript - 按日期过滤的正确方法是什么

listview - 在 ListView flutter 中添加多个 onTap 事件的最佳方法是什么?

android - 如何列出要存储在服务器上的歌曲详细信息

c# - Kinect,警告 : An ImageFrame instance was not Disposed

c# - 使用C#以编程方式调整网格中的行数

java - 在 ListView 中使用 XML 布局扩展自定义 View