How to bind Dictionary to ListBox in WinForms

前端 未结 3 1407
旧巷少年郎
旧巷少年郎 2020-11-30 04:25

It is possible to bind a Dictionary to a Listbox, keeping in sync between the Listbox and the member property?

相关标签:
3条回答
  • 2020-11-30 04:40
    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"; 
    

    (Shamelessly lifted from my own blog: Bind a ComboBox to a generic Dictionary.)

    This means you can use SelectedValue to get hold of the corresponding dictionary key for the selected item in the ListBox.

    0 讨论(0)
  • 2020-11-30 04:42
            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 讨论(0)
  • 2020-11-30 04:46

    I think you can use events for that. Whenever something changes in ListBox, an eventHandler method will add/remove same thing from Dictionary.

    0 讨论(0)
提交回复
热议问题