Mam listę wyboru wielokrotnego wyboru, które wiążę do DataTable. DataTable zawiera 2 kolumny opisu i wartości.Ustawianie wybranej pozycji w polu ListBox bez zapętlenia
Tutaj jest listbox wypełnianie kodu:
DataTable copytable = null;
copytable = GlobalTable.Copy(); // GlobalTable is a DataTable
copytable.Rows[0][0] = "--ALL--";
copytable.Rows[0][1] = "--ALL--";
breakTypeList.DataSource = copytable;
this.breakTypeList.DisplayMember = copytable.Columns[0].ColumnName; // description
this.breakTypeList.ValueMember = copytable.Columns[1].ColumnName; // value
this.breakTypeList.SelectedIndex = -1;
ja ustawiania opisu jako DisplayMember i wartości jako ValueMember w ListBox. Teraz w zależności od tego, jaka wartość jest przekazywana, muszę ustawić wybrany element w ListBoxie.
Oto mój kod:
ListBox lb = c as ListBox;
lb.SelectedValue = valuePassedByUser;
który nie działa. Dlatego muszę uciekać się do kodu poniżej (gdzie pętla przez wszystkie elementy w polu listy)
for (int i = 0; i < lb.Items.Count; i++)
{
DataRowView dr = lb.Items[i] as DataRowView;
if (dr["value"].ToString() == valuePassedByUser)
{
lb.SelectedIndices.Add(i);
break;
}
}
Chcę wiedzieć, czego brakuje/błędne w moim kodu. Dlaczego lb.SelectedValue = valuePassedByUser; wybieranie niewłaściwych przedmiotów?
Czy możesz podać więcej informacji na temat tego, co dokładnie musisz zrobić lub dokładniejszego przykładu kodu? Czy obiekt odczytuje pole z bazy danych i ustawia wybrany indeks/wartość na pasującą wartość w polu listy? – ryanulit
Pole listy jest zapełniane tabelą DataTable, która z kolei ma dane pobrane z bazy danych. Obawiam się, że jeśli ustawiłem wartość w czasie wypełniania listy, dlaczego jest lb.SelectedValue = valuePassedByUser; nie działa? –