Hin*_*nek 7 .net c# globalization cultureinfo windows-phone-7
我在Windows Phone 7中创建了一个值转换器...
public class MyConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
// ...
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
......并像这样使用它......
<TextBlock Text="{Binding SomeField, Converter={StaticResource MyConverter}, ConverterParameter=SomeParameter}" <!-- ... --> />
Run Code Online (Sandbox Code Playgroud)
我的问题:argumentConvert方法的文化总是"en-US",即使我改变Windows Phone设备(或模拟器)的文化对德国德国说,这个culture论点仍然是英语.
不是错误,预期的行为.请参阅MSConnect上的这篇文章WPF Binding默认使用错误的CurrentCulture.
解决方案是将Language您的属性设置PhoneApplicationPage为CurrentCulture,如下所示:
Language = XmlLanguage.GetLanguage(
Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName);
Run Code Online (Sandbox Code Playgroud)
或者使用Language属性在XAML中指定文化,如下所示:
<TextBlock Language="de-DE" Text="..." />
Run Code Online (Sandbox Code Playgroud)
或者PhoneApplicationPage自己
<phone:PhoneApplicationPage Language="de-DE" ...
Run Code Online (Sandbox Code Playgroud)
但更好的解决方案是不要有一个取决于culture参数的值转换器.
编辑:我在博客上写了一个替代解决方案:ValueConverter中的DateTime格式
| 归档时间: |
|
| 查看次数: |
1814 次 |
| 最近记录: |