gpt4 book ai didi

c# - IValueConverter 在 Windows Phone 7 中获得错误的文化

转载 作者:太空狗 更新时间:2023-10-29 20:18:03 25 4
gpt4 key购买 nike

我在我的 Windows Phone 7 中创建了一个值转换器 ...

public class MyConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
// ...
}

// ...
}

...并像这样使用它...

<TextBlock Text="{Binding SomeField, Converter={StaticResource MyConverter}, ConverterParameter=SomeParameter}" <!-- ... --> />

我的问题:Convert 方法的argument 文化始终是“en-US”,即使我更改了 Windows Phone 设备(或模拟器)的文化,比如德国,culture 参数保持英语。

最佳答案

不是错误,是预期的行为。在 MSConnect 上查看此帖子 WPF Binding uses the wrong CurrentCulture by default .

解决方案是将 PhoneApplicationPageLanguage 属性设置为 CurrentCulture,如下所示:

Language = XmlLanguage.GetLanguage(
Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName);

或者使用 Language 属性在 XAML 中指定区域性,如下所示:

<TextBlock Language="de-DE" Text="..." />

或者在 PhoneApplicationPage 它自己

<phone:PhoneApplicationPage Language="de-DE" ...

但更好的解决方案是不使用依赖于 culture 参数的值转换器。

编辑:我在博客上写了一个替代解决方案:DateTime formatting in a ValueConverter

关于c# - IValueConverter 在 Windows Phone 7 中获得错误的文化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7080566/

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