gpt4 book ai didi

c# - 如何在 XAML 转换器中指定格式文化

转载 作者:太空狗 更新时间:2023-10-30 00:31:44 27 4
gpt4 key购买 nike

当我们在 XAML 中使用静态 double 值时,我们如何指定它们以何种格式提供?

例子:

<Rectangle>
<Rectangle.Opacity>
<Binding Path="IsDimmed" Converter="{StaticResource boolToDoubleConverter}" ConverterParameter="0.8"/>
</Rectangle.Opacity>
</Rectangle>

使用转换器方法

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return double.Parse((string)parameter, culture);
}

问题是在一台机器上,小数点由 , 分隔,转换方法分别失败或返回错误值。

我不想在 Parse() 中设置 InvariantCulture方法,因为转换器可能在某些地方用于解析用户输入,这就是为什么 culture参数仍应应用。

如果我使用 <sys:Double x:Key="dimValue">0.8</sys:Double> 将值指定为资源,转换器参数变为 double 类型,但在解析之前转换为字符串。

所以我想以某种方式指定,该值以 en-GB 格式表示,如 ConverterParameter="0.8" ConverterParameterCulture="en-GB"/> .

这是否可以在不需要创建浮肿的 MultiValueConverter 的情况下以某种方式实现?

最佳答案

您可以使用 ConverterCulture Binding 的属性用于此目的:

<Binding Path="IsDimmed" Converter="{StaticResource boolToDoubleConverter}" 
ConverterParameter="0.8" ConverterCulture="en-GB"/>

关于c# - 如何在 XAML 转换器中指定格式文化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23111704/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com