我只想显示设置为小数分隔符的内容,因此"。"或","。
这两个都不行
<TextBlock Text="{Binding CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator}"/>
<TextBlock Text="{Binding Source={x:Static CultureInfo.CurrentCulture.NumberFormat}, Path=NumberDecimalSeparator}"/>
在Path的静态属性中使用圆括号
详情请参见数据绑定中对象的PropertyPath
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类的命名空间定义,应该添加到顶层(xmlns:g="clr-namespace:System.Globalization;assembly=mscorlib"
)