我有一個多選列表框,我綁定到一個DataTable。 DataTable包含2列描述和值。在列表框中設置選中的項目而不循環
這裏的列表框中填入代碼:
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;
我設置的描述爲將DisplayMember和值列表框的ValueMember。現在取決於通過什麼值,我需要在列表框中設置選定的項目。
這裏是我的代碼:
ListBox lb = c as ListBox;
lb.SelectedValue = valuePassedByUser;
這是行不通的。因此,我不得不求助於下面的代碼(在這裏我通過列表框中的所有項目環)
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;
}
}
我想知道什麼是缺少/錯誤在我的代碼。爲什麼是lb.SelectedValue = valuePassedByUser;選擇錯誤的項目?
您可以提供更多關於您需要做什麼或更完整的代碼示例的信息嗎?對象是從數據庫中讀取一個字段,並將所選的索引/值設置爲列表框中的匹配值? – ryanulit 2009-05-18 13:17:42
該列表框正在填充DataTable,DataTable又會從數據庫中檢索數據。我擔心如果我在填充列表時設置了ValueMember,爲什麼是 lb.SelectedValue = valuePassedByUser; 不工作? – 2009-06-03 03:30:54