使用{DynamicResource {x:Static LocalizableTexts.OpenTextKey}}

时间:2009-06-16 16:56:27

标签: wpf mvvm localization

我一直在努力想出一种比LocBaml更好的本地化方法(非常糟糕)。我虽然可以使用{DynamicResource {x:Static LocalizableTexts.OpenTextKey}}之类的东西(dynamicresource,因为我的语言可能会在运行时更改)。唯一的问题是?如何正确创建LocalizableTexts.OpenTextKey?是否有教程可以教我如何创建自定义RessourceKeys以及如何在运行时更新它们?

顺便说一句,我住在MVVM世界......

1 个答案:

答案 0 :(得分:0)

我认为你的后组件资源键。

首先在XAML资源字典中定义资源,例如:

<local:OpenText x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type local:LocalizableTexts}, ResourceId=OpenText}" />

然后创建一个静态访问器类:

public static class LocalizableTexts
{
     public static ComponentResourceKey OpenTextKey
     {
        get { return new ComponentResourceKey(typeof(LocalizableTexts), "OpenText"); }
     }
}

最后确保在使用静态绑定时指明xml命名空间:

{DynamicResource {x:Static local:LocalizableTexts.OpenTextKey}}