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ď č. 1Použ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());
}