using {DynamicResource {x: Static LocalizableTexts.OpenTextKey}}
-
05-07-2019 - |
Question
J'ai essayé de proposer une meilleure approche de localisation que LocBaml (ce qui est nul). Et je pensais que je pouvais utiliser quelque chose comme {DynamicResource {x: Static LocalizableTexts.OpenTextKey}} (source dynamique parce que ma langue pouvait changer à l'exécution). La seule question est? Comment créer correctement LocalizableTexts.OpenTextKey? Existe-t-il un didacticiel pouvant m'apprendre à créer des RessourceKeys personnalisés et à les mettre à jour au moment de l'exécution?
Je vis dans le monde MVVM, au fait ...
La solution
Je pense que vos clés de ressources après composant.
Commencez par définir votre ressource dans un dictionnaire de ressources XAML, par exemple:
<local:OpenText x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type local:LocalizableTexts}, ResourceId=OpenText}" />
Créez ensuite une classe d'accesseurs statiques:
public static class LocalizableTexts
{
public static ComponentResourceKey OpenTextKey
{
get { return new ComponentResourceKey(typeof(LocalizableTexts), "OpenText"); }
}
}
Enfin, assurez-vous d'indiquer l'espace de noms xml lorsque vous utilisez une liaison statique:
{DynamicResource {x:Static local:LocalizableTexts.OpenTextKey}}