【发布时间】:2014-04-16 14:01:30
【问题描述】:
当我们在 XAML 中使用静态双精度值时,我们如何指定它们以何种格式提供?
例子:
<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> 将值指定为资源,则转换器参数变为双精度类型,但在被解析之前被转换为字符串。
所以我想以某种方式指定该值以 en-GB 格式表示,例如 ConverterParameter="0.8" ConverterParameterCulture="en-GB"/>。
这是否可能以某种方式不需要创建一个蓬松的 MultiValueConverter?
【问题讨论】:
标签: c# wpf xaml cultureinfo