Tôi đang gặp một số sự cố với đầu ra của giá trị Ngày giờ. Văn hóa hiện tại của máy tính của tôi được đặt thành de-AT (Áo).WPF XAML StringFormat DateTime: Đầu ra trong văn hóa sai?
Các mã sau
string s1 = DateTime.Now.ToString("d");
string s2 = string.Format("{0:d}", DateTime.Now);
kết quả trong s1 và s2 cả có giá trị chính xác của "2009/06/30".
Nhưng khi sử dụng định dạng tương tự trong XAML
<TextBlock Text="{Binding Source={x:Static sys:DateTime.Now}, StringFormat=d}"/>
đầu ra là ` "2009/06/30". Dường như XAML StringFormat bỏ qua các thiết lập văn hóa hiện tại. Điều này xảy ra trên cả Vista và XP.
Tôi không muốn chỉ định định dạng tùy chỉnh, vì đầu ra phải được định dạng trong cài đặt văn hóa ưa thích của người dùng.
Bất kỳ ai có cùng sự cố? Đây có phải là một lỗi trong WPF?
Tôi thề cả ngày, tôi đã tìm thấy vấn đề này vào phút cuối! – GorillaApe
Nó được coi là "theo thiết kế". Xem https://connect.microsoft.com/VisualStudio/feedback/details/442569/wpf-binding-uses-the-wrong-currentculture-by-default –
chỉ thấy hành vi tương tự trên Windows Phone 7. Lời chào từ Áo! – hfrmobile