utilizando {DynamicResource {x: Static LocalizableTexts.OpenTextKey}}
-
05-07-2019 - |
Pergunta
Eu tenho tentado chegar a uma abordagem localização melhor do que LocBaml (wich é uma porcaria). E eu que eu poderia usar algo como {DynamicResource {x: Static LocalizableTexts.OpenTextKey}} (DynamicResource porque minha língua poderia mudar em tempo de execução). A única pergunta é? Como posso corretamente criar LocalizableTexts.OpenTextKey? Existe um tutorial lá fora, que pode me ensinar como criar RessourceKeys personalizadas e como atualizá-los em tempo de execução?
Estou vivendo no mundo do MVVM pelo caminho ...
Solução
Eu acho que o seu depois de chaves de recurso do componente.
Comece por definir o seu recurso em um dicionário de recursos XAML, algo como:
<local:OpenText x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type local:LocalizableTexts}, ResourceId=OpenText}" />
Em seguida, crie uma classe acessor estática:
public static class LocalizableTexts
{
public static ComponentResourceKey OpenTextKey
{
get { return new ComponentResourceKey(typeof(LocalizableTexts), "OpenText"); }
}
}
Finalmente certifique-se de indicar o namespace xml quando você usa uma estática de ligação:
{DynamicResource {x:Static local:LocalizableTexts.OpenTextKey}}