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

Dotnet Discussion :

Soucis de Binding entre DataGrid et ComboBox


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Soucis de Binding entre DataGrid et ComboBox
    Bonjour à tous,

    Je suis actuellement en formation de développeur logiciel et j'étudie le .Net/C# et je bloque sur une chose, je vais essayer d'être le plus clair possible.

    J'au un datagrid qui est peuplé avec un DataView qui renvoi une table "voiture" depuis mon DataSet.

    La table contient des noms de voitures, marques, immatriculation etc.

    Mon but est que lorsque je clique sur une des lignes de mon Datagrid, j'ai par exemple la bonne marque qui soit affichée dans le ComboBox.

    J'ai parfaitement réussi à le faire en créant une ObservableCollection "ModelVoiture" de type string qui est bindé sur le ItemSource du ComboBox et le SelectedItem du ComboBox qui est bindé sur le SelectedItem qui va bien sur mon DataGrid :

    1
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <ComboBox ItemsSource="{Binding ModelVoiture, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
      SelectedItem="{Binding SelectedItem.nom_model, ElementName=grid, Mode=TwoWay}" 
      Grid.ColumnSpan="2" HorizontalAlignment="Left" Margin="814,87,0,0" VerticalAlignment="Top" Width="120" Height="35">


    Jusque là pas de soucis mais mon but est qu'on puisse modifier certaines valeurs pour que je puisse modifier ma base de donnée pour pouvoir récupérer l'Id qui correspond à celui qui est dans ma base de donée et donc j'ai crée une ObservableCollection de type classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    modelVoiture = new ObservableCollection<Voiture>
     
                {
                    new Voiture{Model = "audi", IdModdel=1},
                    new Voiture{Model = "bmw", IdModdel=2},
                    new Voiture{Model = "mercedes", IdModdel=3}
                };
     
     
     
            public class Voiture
            {
                public string IdModdel { get; set; }
                public string Model { get; set; }           
            }
    Mais là ça ne fonctionne plus. J'ai bien ma collection de voiture qui s'affiche dans mon combo box avec le DisplayMemberPath="Model" mais il n'y a plus de synchronisation avec le SelectedItem.

    De ce que j'ai pu voir cela viendrai du fait que je peuple mon ComboBox avec un Objet et plus avec des string et du coup comme le SelectedItem se sert de la méthode Equal pour pouvoir trouver la correspondance dans la liste, il n'arrive donc forcément pas à trouver une correspondance entre un string "audi" et un objet "audi" même si ce dernier est une propriété string.

    Je précise que j'utilise WPF ainsi que le pattern MVVM

    Voilà j'espère pouvoir trouver une solution sinon je m'y prendrai autrement, merci pour votre aide.

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    up

    Je pensais éventuellement à un IValueConverter qui prendrai en entrée l'objet, ici la propriété Model retournée par la ObservableCollection ModelVoiture et renverrai un string pour chaque élément du combobox?

Discussions similaires

  1. Binding entre un Datagrid et une base de donnée
    Par bipbip2006 dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 06/08/2010, 10h34
  2. Réponses: 2
    Dernier message: 26/05/2010, 16h29
  3. Binding entre TextBox et ComboBox
    Par Icewall dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 06/08/2009, 13h10
  4. Binding entre listview et combobox
    Par chris81 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 12/11/2008, 20h58
  5. binding entre combobox et datagridview
    Par Mathieu.Nanoux dans le forum Windows Forms
    Réponses: 8
    Dernier message: 08/03/2007, 00h31

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