【问题标题】:using {DynamicResource {x:Static LocalizableTexts.OpenTextKey}}使用 {DynamicResource {x:Static LocalizableTexts.OpenTextKey}}
【发布时间】:2009-06-16 16:56:26
【问题描述】:
我一直在尝试提出比 LocBaml 更好的本地化方法(太糟糕了)。我虽然可以使用 {DynamicResource {x:Static LocalizableTexts.OpenTextKey}} 之类的东西(动态资源,因为我的语言可以在运行时改变)。唯一的问题是?如何正确创建 LocalizableTexts.OpenTextKey ?是否有教程可以教我如何创建自定义 RessourceKey 以及如何在运行时更新它们?
顺便说一句,我生活在 MVVM 世界中......
【问题讨论】:
标签:
wpf
mvvm
localization
【解决方案1】:
我认为你的后组件资源键。
首先在 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}}