在我的 .NET MAUI 应用程序中,我想在 XAML 中格式化日期/时间,以显示日期以及星期几的简称。例如,日期 24.11.2024 应显示如下(使用德语星期几缩写 as Sonntag
)So
:
所以24.11.24
对于此方法:
<Label>
<Label.FormattedText>
<FormattedString>
<Span Text="{Binding StartDate, StringFormat='{0:ddd}'}" FontAttributes="Bold" />
<Span Text=" " />
<Span Text="{Binding StartDate, StringFormat='{0:dd.MM.yy}'}" />
</FormattedString>
</Label.FormattedText>
</Label>
日期显示如下:
周日24.11.24
即使用英文名称缩写(Sunday)。
我的问题是,有没有办法在 XAML 中转换日期时指定自定义文化?
不,没有办法通过 XAML 绑定指定自定义文化。
但是,假设您的应用程序文化设置为英语,因为它显示Su,您可以创建一个转换器来转换具有自定义文化的字符串。
并在 Span 上使用它,如下所示
如果您想要对
CultureInfo.CurrentCulture
用于控制数字和日期格式的变化做出反应,您可以将其添加到您的视图模型中,如下所示:这样做将允许您的应用与文化变化进行属性绑定。您可以使用以下 MultiBinding 技巧相应地更新日期格式。此技巧之所以有效,是因为当
Culture
更改时;MultiBinding
强制更新文本,并且我们还更改CultureInfo.CurrentCulture
默认string.Format
函数,将新文化考虑在内。