IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

Définir l'équivalent de x:key en c#


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    351
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 351
    Par défaut Définir l'équivalent de x:key en c#
    Bonjour,

    Pour les besoins de mon application, on charge des ResourceDictionaries en ressource de l'application.
    Etant donné que l'on a besoin de charger dynamiquement ces ResourceDictionaries, on écrit ce code en c#.

    Hors, on doit pouvoir accéder à ces ResourceDictionary par une Key comme on le fait habituellement dans du XAML (en définissant x:Key).
    Le problème est qu'en C# nous n'avons pas ce x (qui est une référence au namespace "http://schemas.microsoft.com/winfx/2006/xaml").

    Au final ce que je voudrais obtenir, c'est quelque chose du genre:

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    ResourceDictionary dictionary = new ResourceDictionary()  {   Source = monURI, Key = maCle};

    Merci d'avance pour m'aider à trouver cette solution
    Laurent

  2. #2
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    Bonjour,

    ResourceDictionnary est en fait un dictionnaire et la clef que tu défini dan le XAML est en fait la clef utilisé pour placer l'élément dans le dictionnaire.

    Pour retrouver un élément tu utilises donc cette syntaxe (la clef est de type object et non pas string comme on pourrait le penser) :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    object maClef = "UneValeur";
    object maValeur = MonResourceDictionnay[maClef];

    Cela réponds à tes besoins ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    351
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 351
    Par défaut
    Tu as répondu en partie à ma question

    Mon souci est que je voulais mettre une Key sur un ResourceDictionary. Je voulais ensuite mettre ce ResourceDictionary dans les MergedDictionaries des Resources de l'application.

    J'ai remarqué qu'on ne pouvait pas mettre de Key sur des Dictionnaires qui sont assemblés dans les MergedDictionaries.

    Finalement je ne ferai pas de MergedDictionaries, je vais juste déclarer un Dictionnaire à chaque fois de la manière suivante en XAML :

    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <ResourceDictionary x:Key="Module1" Source="maSource" />
    <ResourceDictionary x:Key="Module2" Source="maSource2" />
    <ResourceDictionary x:Key="Module3" Source="maSource3" />

    En C# ça donne quelque chose du genre tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Uri monUri= new Uri(@"chemin", UriKind.Relative);
    ResourceDictionary dictionary = new ResourceDictionary { Source = monUri };
    System.Windows.Application.Current.Resources.Add("Module1", dictionary);
    Merci de t'être penché sur mon problème
    Laurent

  4. #4
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    Pas de problème.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment définir une relation d'équivalence ?
    Par Amon-Râ dans le forum Prolog
    Réponses: 10
    Dernier message: 19/09/2006, 00h27
  2. [postgreSQL] équivalent de la function 'instr'
    Par Dra_Gun dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/01/2003, 16h09
  3. Équivalent du #IFDEF
    Par agh dans le forum Langage
    Réponses: 4
    Dernier message: 14/10/2002, 18h44
  4. Comment définir le type matrice ?
    Par charly dans le forum Langage
    Réponses: 7
    Dernier message: 15/06/2002, 21h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo