Comment lier le dictionnaire à ListBox dans winforms

il est possible de lier un dictionnaire à une listbox, en restant synchronisé entre la listbox et la propriété member?

20
demandé sur ʞᴉɯ 2009-10-02 03:19:01

3 réponses

var choices = new Dictionary<string, string>(); 
choices["A"] = "Arthur"; 
choices["F"] = "Ford"; 
choices["T"] = "Trillian"; 
choices["Z"] = "Zaphod"; 
listBox1.DataSource = new BindingSource(choices, null); 
listBox1.DisplayMember = "Value"; 
listBox1.ValueMember = "Key"; 

(sans Vergogne levé de mon propre blog: Lier une zone de liste déroulante à un Dictionnaire générique.)

Cela signifie que vous pouvez utiliser SelectedValue d'obtenir le dictionnaire correspondant clé de l'élément sélectionné dans la ListBox.

37
répondu Matt Hamilton 2009-10-01 23:25:03

je pense que vous pouvez utiliser les événements pour que. Chaque fois que quelque chose change dans ListBox, une méthode eventHandler ajoutera/supprimera la même chose du dictionnaire.

0
répondu Tarik 2009-10-01 23:24:15
        label1.Text= listBox1.SelectedIndex.ToString();

        if ( listBox1.SelectedItem is KeyValuePair<int,DockStyle>)
        {

            var temp1 = (KeyValuePair<int, DockStyle>)listBox1.SelectedItem;
            label3.Text = temp1.Key.ToString();
            label4.Text = temp1.Value.ToString();


        }
0
répondu WINSH WINSH 2016-10-10 09:02:11