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 Forms Discussion :

DataGridView et Dictionary


Sujet :

Windows Forms

  1. #1
    Membre habitué Avatar de Antho42
    Profil pro
    Inscrit en
    Février 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 173
    Points : 161
    Points
    161
    Par défaut DataGridView et Dictionary
    Bonjour,

    Je me trouve face à un petit problème.
    J'ai des objets Bloc contenant des dictionary de string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class Bloc
        {
            #region Variables
     
            ...
            private Dictionary<string, string> _Cont;
            ...
            #endregion
        }
    Ensuite, dans une Form, je récupère certains objets, je stocke une de leur propriété dans une comboBox et j'aimerais que dans l'événement SelectIndexChanged de la comboBox, apparaisse le contenu du dictionary<string,string> du bloc spécifié dans mon dataGridView.
    Seulement problème, je n'arrive pas a spécifier ça.
    Y a t'il une méthode facile, ou cela va t'il poser problème du fait que Dictionary n'implémente pas IList ou IBindingList ou que sais-je encore ?

    Y'a t'il une méthode sympa, genre transformer le dictionary en list puis specifier la liste en source ? Je ne trouve pas vraiment de solutions
    J'espère que je vais pas devoir m'amuser à créer des KeyCollection et des ValueCollection de mon dictionary et ajouter ça au datagridview par boucles .... rassurez moi

    Pour le moment j'ai ça, mais ça ne fait absolument rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private void cbBloc_SelectedIndexChanged(object sender, EventArgs e)
            {
                foreach (Bloc b in _Parent.MaListe)
                    if (b.Name == cbBloc.SelectedItem.ToString())
                        dGView.DataSource = b.Cont;
     
            }

  2. #2
    Membre habitué Avatar de Antho42
    Profil pro
    Inscrit en
    Février 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 173
    Points : 161
    Points
    161
    Par défaut
    j'ai trouvé une solution , peut-être, temporaire en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    foreach (Bloc b in _Parent.MaListe)
                    if (b.Name == cbBloc.SelectedItem.ToString())
                    {
                        List<KeyValuePair<string,string>> list = b.Cont.ToList();
                        dGView.DataSource = list;
                    }
    Et donc en passant par une liste, mais il existe peut-être une solution plus propre ?

Discussions similaires

  1. [c#] datagridview - trouver postion de la selection
    Par zeroox dans le forum Windows Forms
    Réponses: 7
    Dernier message: 15/04/2009, 12h48
  2. Probleme d'affichage avec un DataGridView
    Par kekesilo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/01/2007, 14h12
  3. [VS2005][VB.Net] Custom Format dans un DataGridView
    Par Vonotar dans le forum VB.NET
    Réponses: 10
    Dernier message: 22/11/2005, 08h15
  4. [O9i] Temp & dictionary
    Par Fabien Celaia dans le forum Oracle
    Réponses: 10
    Dernier message: 17/11/2005, 14h38
  5. Utilisation Dictionary
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 18/10/2004, 15h51

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