Tôi có một hộp danh sách đa lựa chọn mà tôi đang ràng buộc với một DataTable. DataTable chứa 2 cột mô tả và giá trị.Đặt mục đã chọn trong ListBox mà không cần lặp lại
Dưới đây là ListBox đang Populating:
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;
Tôi đang thiết mô tả như DisplayMember và giá trị như ValueMember của ListBox. Bây giờ tùy thuộc vào những gì giá trị được thông qua tôi cần phải thiết lập các mục đã chọn trong ListBox.
Dưới đây là mã của tôi:
ListBox lb = c as ListBox;
lb.SelectedValue = valuePassedByUser;
mà không hoạt động. Do đó tôi phải sử dụng mã bên dưới (nơi tôi lặp qua tất cả các mục trong hộp danh sách)
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;
}
}
Tôi muốn biết những gì còn thiếu/sai trong mã của mình. Tại sao là lb.SelectedValue = valuePassedByUser; chọn các mục không chính xác?
Bạn có thể cung cấp thêm một số thông tin về chính xác bạn cần làm hay ví dụ hoàn chỉnh hơn về mã không? Đối tượng có đọc một trường từ cơ sở dữ liệu và đặt chỉ mục/giá trị đã chọn thành giá trị khớp trong hộp danh sách không? – ryanulit
Hộp danh sách được phổ biến với một DataTable mà lần lượt có dữ liệu được lấy từ cơ sở dữ liệu. Mối quan tâm của tôi là nếu tôi đã đặt ValueMember trong khi điền danh sách, tại sao là lb.SelectedValue = valuePassedByUser; không hoạt động? –