используя {DynamicResource {x: Static LocalizableTexts.OpenTextKey}}
-
05-07-2019 - |
Вопрос
Я пытался придумать лучший подход к локализации, чем LocBaml (который отстой). И хотя я мог бы использовать что-то вроде {DynamicResource {x: Static LocalizableTexts.OpenTextKey}} (dynamicresource, потому что мой язык мог измениться во время выполнения). Единственный вопрос? Как правильно создать LocalizableTexts.OpenTextKey? Есть ли учебник, который может научить меня, как создавать собственные RessourceKeys и как их обновлять во время выполнения?
Кстати, я живу в мире MVVM ...
Решение
Я думаю, что ваши ключи ресурсов после компонента.
Начните с определения ресурса в словаре ресурсов 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}}