Fichier de ressources Databind en XAML

Pour la localisation, j’utilise la fonctionnalité Fichier de ressources (fichiers .resx) dans .NET, mais je me demande s’il existe un moyen intelligent de rechercher les différentes propriétés de localisation directement dans XAML?

Le fichier de ressources semble uniquement exposer des propriétés statiques, ce que je ne peux pas comprendre comment lier un modèle de vue ou un autre dictionnaire de ressources.

De plus, si cela est possible, j’aimerais que cela fonctionne au moment du design avec Expression Blend.

Voici comment je le fais.

WPF:

  1. Créez un fichier de ressources et, dans le même assemblage, créez une classe ayant un constructeur public. Assurez-vous que le fichier de ressources est marqué public.

  2. Dans votre fichier xaml – ajoutez une référence à cet emplacement dans les espaces de noms

    xmlns:res="clr-namespace:MyProject.SsortingngResources"

  3. Pour votre propriété de texte, utilisez la liaison suivante

    TextProperty="{x:Static res:ResourceFileName.ResourceKey}"

Silverlight:

  1. Suivez les étapes 1 et 2 ci-dessus, puis ajoutez le fichier de ressources en tant que ressource dans votre contrôle utilisateur ou dans une ressource au niveau de l’application:

  2. Pour votre propriété de texte, utilisez la liaison suivante:

    TextProperty="{Binding ResourceKey, Source={StaticResource resourceLabels}}"

Très similaire à ce que proposait Geek, mais encore un peu plus facile je pense:

Créez une classe dans le même assemblage, qui hérite du fichier de ressources et expose un constructeur public, puis utilisez cette classe à la place.

 public class ResourcesProxy : Properties.Resources { ///  /// resolves the problem of internal constructor in resources.designer.cs /// in conjunction with xaml usage ///  public ResourcesProxy() : base() { } }