在 xaml 中显示当前文化小数点分隔符

Show current culture decimal separator in xaml

我只想显示设置为小数点分隔符的内容,所以要么是“.”或“,”。

这些都不起作用

<TextBlock Text="{Binding CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator}"/>

<TextBlock Text="{Binding Source={x:Static CultureInfo.CurrentCulture.NumberFormat}, Path=NumberDecimalSeparator}"/>

在路径中为静态 属性 使用括号。

详情见PropertyPath for Objects in Data Binding

xmlns:g="clr-namespace:System.Globalization;assembly=mscorlib"

<TextBlock Text="{Binding
    Path=(g:CultureInfo.CurrentCulture).NumberFormat.NumberDecimalSeparator}"/>

或通过x:Static设置绑定源:

<TextBlock Text="{Binding
    Source={x:Static g:CultureInfo.CurrentCulture},
    Path=NumberFormat.NumberDecimalSeparator}"/>

{x:Static } 仅适用于 static 属性或字段

CurrentCulture 是 CultureInfo 的静态成员,但 NumberFormat 是实例成员

所以正确的用法是:

<TextBlock Text="{Binding Source={x:Static g:CultureInfo.CurrentCulture}, Path=NumberFormat.NumberDecimalSeparator}"/>

其中 g 是一个命名空间定义,其中包含 CurrentCulture class 并且应该添加到顶层 (xmlns:g="clr-namespace:System.Globalization;assembly=mscorlib")