/ / Zobraziť ValueMember z CheckedListBox v c # - c #

Zobraziť ValueMember z CheckedListBox v c # - c #

Mám CheckedListBox, ktorý je viazaný na tabuľku.Chcem získať ValueMember ľubovoľnej položky zo zoznamu, ktorý som check.Presently som spustiť slučku cez všetky kontrolované položky v zozname pre zobrazenie ValueMember, v dôsledku toho to mi ukazuje niekoľko messageboxes, ktoré nechcem Chcem, v každom prípade, ak som kontrolovať akúkoľvek položku, potom by mala ukázať mi jej zodpovedajúce ValueMember.My súčasný kód je

foreach (DataRowView view in clbAnnually.CheckedItems)
{
MessageBox.Show(view[clbAnnually.ValueMember].ToString());
}

Hľadal som podobnú otázku v SO, ale oni vyriešiť môj problém.Prosím radu možno s kódom.

odpovede:

1 pre odpoveď č. 1

Použi CheckedListBox.ItemCheck event. Zvýši sa, keď používateľ kontroluje položku a poskytuje všetky informácie o kontrolovanej položke.

DataTable table = new DataTable();
table.Columns.Add("ID", typeof(int));
table.Columns.Add("Name");

table.Rows.Add(0, "Name 0");
table.Rows.Add(1, "Name 1");
table.Rows.Add(2, "Name 2");

checkedListBox1.DataSource = table;
checkedListBox1.DisplayMember = "Name";
checkedListBox1.ValueMember = "ID";

checkedListBox1.ItemCheck += CheckedListBox1_ItemCheck;

1.

private void CheckedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) {
CheckedListBox clb = (CheckedListBox)sender;
DataRowView row = (DataRowView)clb.Items[e.Index];
MessageBox.Show(row[clb.ValueMember].ToString());
}

2.

private void CheckedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) {
CheckedListBox clb = (CheckedListBox)sender;
MessageBox.Show(clb.SelectedValue.ToString());
}