utilizzando {DynamicResource {x: Static LocalizableTexts.OpenTextKey}}
-
05-07-2019 - |
Domanda
Ho cercato di trovare un approccio di localizzazione migliore di LocBaml (che fa schifo). E ho pensato di usare qualcosa come {DynamicResource {x: Static LocalizableTexts.OpenTextKey}} (dynamicresource perché la mia lingua potrebbe cambiare in fase di esecuzione). L'unica domanda è? Come posso creare correttamente LocalizableTexts.OpenTextKey? Esiste un tutorial che può insegnarmi come creare RessourceKeys personalizzati e come aggiornarli in fase di esecuzione?
Vivo nel mondo MVVM tra l'altro ...
Soluzione
Penso che le tue chiavi di risorsa after component.
Inizia definendo la tua risorsa in un dizionario di risorse XAML, qualcosa del tipo:
<local:OpenText x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type local:LocalizableTexts}, ResourceId=OpenText}" />
Quindi creare una classe di accesso statica:
public static class LocalizableTexts
{
public static ComponentResourceKey OpenTextKey
{
get { return new ComponentResourceKey(typeof(LocalizableTexts), "OpenText"); }
}
}
Infine, assicurati di indicare lo spazio dei nomi xml quando usi un'associazione statica:
{DynamicResource {x:Static local:LocalizableTexts.OpenTextKey}}