![](/img/trans.png)
[英]url parameter passing phone number e.g. +1234 , how to retrieve it e.g. abc.com/save/xyz/+123
[英]How to specify XAML value (e.g. converter parameter) culture
當我們在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>
將值指定為資源,則converter參數將變為double類型,但在解析之前會轉換為字符串。
所以我想以某種方式指定,該值以en-GB格式表示,如ConverterParameter="0.8" ConverterParameterCulture="en-GB"/>
。
這可能不需要創建一個浮腫的MultiValueConverter嗎?
您可以使用Binding
ConverterCulture
屬性來實現此目的:
<Binding Path="IsDimmed" Converter="{StaticResource boolToDoubleConverter}"
ConverterParameter="0.8" ConverterCulture="en-GB"/>
有時我用:
<TextBlock Grid.Column="3" Margin="3" Text="{Binding [Value], Mode=OneTime, StringFormat={}{0:N2}, ConverterCulture={x:Static glob:CultureInfo.CurrentCulture}}" HorizontalAlignment="Right" />
glob
是:
xmlns:glob="clr-namespace:System.Globalization;assembly=mscorlib"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.