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

C# Discussion :

Binding WPF simple


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut Binding WPF simple
    Bonjour

    NE trouvant pas un "bel" exemple simple et précis sur le net, je m'en remets à vous.

    Je veux, en WPF afficher les données d'une requete...

    Je recupère une liste de voiture (je mets du "pseudo code")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    class voiture
    {
         public int id;
         public int ConstructeurID;
         public int ConducteurID;
    }

    Si je binde ma liste dans ma grille, j'ai évidemment mes 3 valeurs.

    Ma question est simple et double

    Q1 : Comment faire pour que dans ma grille, le ConstructeurID soit remplacé par le vrai nom du constructeur venant d'une liste du genre:
    Q2: Comment faire pour que dans ma grille, j'ai une combobox avec la bonne valeur d'affiché et la possibilité d'en choisir une nouvelle...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    List<Constructeur>
     
    class Constructeur
    {
        public int ID;
        public string name;
    }


    (Je tiens à préciser que j'arrive à faire celà en 3 secondes en winform...

    (Pas de MVVM, ou autre truc du genre)...

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Il me semblerait logique que la classe Voiture expose une propriété de type Constructeur. Tu pourrais alors supprimer la propriété voiture.ConstructeurID et tu disposerais automatiquement de l'ID ET du nom du constructeur lors de la manipulation de ton objet Voiture (voiture.constructeur.id et voiture.Constructeur.nom).
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Bien sur, je peux faire en sorte que ma liste contienne directement toutes les données...

    Mais j'aimerais savoir faire un binding dans ma grille en m'appuyant sur, finalement, 2 sources.. l'un contenant les données et une autre (ou xx d'ailleurs) contenant
    des informations sur les "ID" référencés dans la source principal...

    Evidemment, ta suggestion pourrait résoudre la Q1, mais pas la Q2... (pour afficher une liste de choix - combo dans ma grille)

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    En bindant ta grille sur une list<voiture>, je ne vois pas très bien comment faire autrement que comme je préconise. C'est le principe même de l'orienté objet, me semble-t-il.

    Sinon, tu peux binder sur une requête d'un dataset (select ... from voiture inner join constructeur ...) mais perso, je trouve plus pratique de le faire sur l'objet.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    bah je dis juste que en Winform, il est très facile de binding le contenu d'une colonne avec une autre source de données afin que, un "id" puisse être remplacé au niveau de l'affichage par un texte bien plus parlant...

    J'aimerais retrouver ce comportement...

    Après, il doit bien être possible de dire que le contenu d'une colonne doit utiliser la valeur fournie pour aller chercher la données à afficher depuis une autre source, quand même !!!

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    [...]

    Après, il doit bien être possible de dire que le contenu d'une colonne doit utiliser la valeur fournie pour aller chercher la données à afficher depuis une autre source, quand même !!!
    Ben, je ne vois pas trop comment ce serait possible, dans la mesure ou une ligne de la grille correspond à une ligne de source. Sinon, sur quoi pourrait se baser ta grid pour faire correspondre les lignes des différentes sources?

    (Et je serais d'ailleurs curieux de voir comment tu pourrais faire cela en winform, au passage )
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    en winform, tu vas créer une colonne à base de combobox dont la datasource viendra d'une autre source et tu utiliseras le DisplayMember et le ValueMember pour faire le "binding"

    genre comme dans ce lien : http://stackoverflow.com/questions/1...a-datagridview

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Ok. Désolé... Je viens ENFIN de comprendre ce que tu voulais faire...

    Par contre, pas trop d'idées pour le réaliser en wpf
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 5
    Par défaut
    Pas de "bel" exemples à proposer, mais quelques pistes.

    Q1 : Pour afficher un texte à partir d'une liste id/nom, un converter peut suffire : https://msdn.microsoft.com/fr-fr/lib...vs.110%29.aspx

    Dans ton cas, un multi binding serait plus approprié : tu passes un id et une liste id/nom au converter qui te retourne le nom.
    Exemple : http://stackoverflow.com/a/3980174/704348

    C'est une méthode un peu sinueuse mais ça fonctionne...

    Q2 : Si la combobox contient beaucoup d'item, les performances ont l'air de se dégrader assez vite.
    Un exemple de combobox dans une grille qui ressemble à ce que tu veux faire https://stackoverflow.com/questions/...using-combobox

Discussions similaires

  1. [Débutant] DependencyProperty Binding WPF
    Par Samyy17 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 25/02/2013, 11h01
  2. wpf simple et windows form
    Par romulus dans le forum Windows Presentation Foundation
    Réponses: 11
    Dernier message: 22/06/2009, 18h18
  3. Question WPF simple
    Par theMonz31 dans le forum C#
    Réponses: 3
    Dernier message: 22/04/2009, 16h24
  4. Quel type de collection utilisez-vous pour le binding WPF ?
    Par FRED.G dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 04/07/2008, 20h55
  5. RichTextBox et Binding - WPF
    Par marma dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 16/05/2008, 14h04

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