4

我有一个 WPF4 应用程序。

在那里,我将 UI 控件绑定到 DateTimeOffSet 值。例如一个文本块

<TextBlock Text="{Binding Due.LocalDateTime,StringFormat='{}{0:dd MMM HH:mm}'}"/>

但我想要一种具有文化意识的价值展示。因此,例如在德国有 24 小时代表,而在美国则有 AM/PM 代表。

实现这一点的最好/最聪明的方法是什么?我需要一个 covnerter 吗?或者有没有办法在 xaml 中表示这个?日期字段的顺序也不同等等......

4

2 回答 2

3

对于这种可疑的“设计”行为,这里有很多解决方法:

http://connect.microsoft.com/VisualStudio/feedback/details/442569/wpf-binding-uses-the-wrong-currentculture-by-default

精确复制用户在区域设置控制面板小程序中选择的自定义设置很困难,但是通过设置 xml:lang 属性,通用的特定于语言环境的设置很容易。

例如,您可以将这样的内容添加到您的顶级窗口元素,例如:

Language="{Binding Source={x:Static Globalization:CultureInfo.CurrentCulture}, Path=IetfLanguageTag,Mode=OneTime}"

我必须再次强调,这并不完美,因为用户选择的任何自定义显示首选项都将被忽略。

于 2012-02-21T18:18:11.020 回答
0

对于任何有兴趣的人:

<Window x:Class="ViewFolderChanges"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    ...
    xml:lang="el-GR" >

<TextBlock Text="{Binding ElementName=datefrom, Path=SelectedDate, StringFormat=ddd MM yyyy}" VerticalAlignment="Center" Padding="3,0" Margin="2,0,5,0"/>
于 2021-08-24T16:46:35.630 回答