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 :

[WPF DataBinding] Binding un peu compliqué


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 15
    Par défaut [WPF DataBinding] Binding un peu compliqué
    Bonjour à tous,

    J'ai un petit problème de binding... Voici comment est structuré mon application :
    - plusieurs Controller (invisible pour la vue) implémentant un interface (donc pour le controller ControllerSupportType, il y a un IControllerSupportType)
    - une enum avec tous les type de controller : ControllerType
    - avec ces controller, une classe statique ControllerFactory par laquelle je dois passer pour récupérer une instance d'un controller (par exemple pour récupérer un IControllerSupportType, il faut faire "(IControllerSupportType)ControllerFactory.getController(ControllerType.SupportType);"

    Dans un tout autre namespace, j'ai une boite de dialogue pour dans laquelle je voudrais lister tous les SupportType que je récupère via la fonction getAllSupportType de l'interface IControllerSupportType pour binder cette liste dirrectement dans une combobox.
    j'ai donc pensé a utiliser un ObjectDataProvider mais ... je suis bloque, comment récupérer une instance ce IControllerSupportType pour ensuite récupérer la liste, tout ça dirrectement dans le code XAML...

    Voila voila, j'espère ne pas avoir fait fuir tout le monde avec cette explication un peu confuse...

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    J'ai pas tout compris

  3. #3
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 15
    Par défaut
    je récapitule :
    une assembly Controller contennant plusieurs interfaces (publiques) avec leur implémentation (privée). Pour l'exemple on utilise l'interface IControllerSupportType (son implémentation étant invisible hors de l'assembly -> classe internal)
    Afin de récupérer la classe d'implémentation, j'ai une classe statique nomée ControllerFactory dont j'utilise la méthode getController. Etant donné le nombre de controller, cette méthode prend en paramètre une enum (ControllerType) pour récupérer ma classe je fait donc

    IControllerSupportType _supportTypeController = (IControllerSupportType)ControllerFactory.getController(ControllerType.SupportType);

    Dans cette classe il y a une fonction getAllSupportType() qui me renvoie un "List<SupportType>".

    Je cherche a binder ce "List<SupportType>" dans un ComboBox en ne passant que par le XAML et non le C#.

    C'est plus clair??

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Le problème c'est que tu ne peux pas binder sur une méthode en XAML... il faudrait que getAllSupportType() soit en fait une propriété, AllSupportTypes par exemple, que tu mettrais comme ItemsSource de la ComboBox.

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Le problème c'est que tu ne peux pas binder sur une méthode en XAML...
    Si, avec un ObjectDataProvider

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Thomas Lebrun Voir le message
    Si, avec un ObjectDataProvider
    Ah oui tiens... à force de voir dans la doc "You cannot use methods in XAML", ça avait fini par me rester dans la tête

Discussions similaires

  1. [WPF] Synchronisation du binding un peu lente
    Par Baud10 dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 25/05/2010, 19h47
  2. Requete un peu compliqué pour moi
    Par passie dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/04/2006, 15h08
  3. [MySQL 4.1.17] requete un peu compliqué à faire
    Par Zen_Fou dans le forum Administration
    Réponses: 1
    Dernier message: 26/04/2006, 17h41
  4. code une somme un peu complique
    Par Battosaiii dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 08/04/2006, 16h00
  5. [SQL - ORACLE] Requete un peu compliquée (pour moi)
    Par Worldofdada dans le forum Langage SQL
    Réponses: 15
    Dernier message: 03/11/2005, 08h25

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