À l'aide d'une liste en tant que source de données pour DataGridView

J'ai extrait le nom du paramètre et de leurs valeurs respectives d'un fichier de configuration dans l'ordre du dictionnaire. Le dictionnaire contient des clés et des valeurs qui sont de la ICollection classe. Je veux lier les données et les afficher dans un DataGridView. J'ai essayé de copier les chaînes pour les matrices et l'affichage de ces tableaux, mais quand j'ai couru le programme les colonnes étaient vides et il ne semble pas être appliqué à tous.

J'ai aussi essayé de mettre le DataGridView source directement à un commandés dictionnaire des collections (clés ou des valeurs), mais qui n'a pas abouti à ce que je voulais; les colonnes étaient encore vides. Cependant, une troisième colonne est fait avec le nom de colonne "longueur" et affiche la longueur des entrées dans la ICollection. Mais inutile de dire que je ne veux pas les longueurs, je veux les entrées elles-mêmes.

Voici le code que j'utilise pour cette question: Lors du chargement du formulaire, je charge le fichier de configuration et un membre privé appelé m_Settings a toutes les paires clé-valeur. Puis-je créer une liste et d'ajouter les clés et les valeurs séparément. Après le réglage de la source de liaison de données', je lance le programme, et les deux colonnes, j'ai ajouté sont à la fois vide.

    private void Form4_Load(object sender, EventArgs e)
    {
        loadconfigfile(Properties.Settings.Default.Config);
        List<Object> data = new List<Object>();
        data.Add(m_Settings.Keys);
        data.Add(m_Settings.Values);
        bindingSource1.DataSource = data;
        dataGridView1.DataSource = bindingSource1;
        dataGridView1.Refresh();
    }

Toutes les idées de comment je pourrais obtenir le commandé dictionnaire et afficher les entrées de deux colonnes, intitulées "Paramètres" et "Valeurs"? Je crois que les listes ont été Sources de données compatible pour DataGridViews, mais maintenant, je commence à deviner moi-même.

Toute aide ou d'orientation est grandement apprécié! Je serai heureux de vous fournir plus d'informations si nécessaire.

Merci!

MODIFIER:

Voici le code révisé avec la mise en œuvre myStruct classe:

    List<myStruct> list = new List<myStruct>();
    for(int index = 0; index < m_Settings.Count; index++)
    {
        myStruct pair = new myStruct(keys[index], values[index].ToString());
        list.Add(pair);
    }

    public class myStruct
    {
        private string Key { get; set; }
        private string Value { get; set; }

        public myStruct(string key, string value)
        {
            Key = key;
            Value = value;
        }
    }

Cependant, lorsque j'ai mis la liaison DataDource à la liste, rien ne s'affiche sur le DataGridView, c'est tout simplement vide. Quelqu'un sait pourquoi?

  • Le code ci-dessus fonctionnent réellement pour vous? Je l'ai essayé mais cela ne fonctionne pas jusqu'à ce que j'ai changé le Key et Value à public (comme ils le sont dans l'acceptation de réponse...)
  • Il n'avait pas à l'époque, c'était un code basé sur une suggestion dans les réponses que j'ai eu. La réponse est celle qui fonctionne réellement.
InformationsquelleAutor tf.rz | 2011-06-24