リストボックスとメンバープロパティの間で同期を保ちながら、辞書をリストボックスにバインドすることは可能ですか?
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";
(私自身のブログから恥知らずに持ち上げられました: ComboBoxを一般的な辞書にバインドします 。)
これは、SelectedValueを使用して、リストボックス内の選択されたアイテムに対応する辞書キーを取得できることを意味します。
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();
}