2013-06-20 63 views

回答

1

一段時間後,我發現在DevExpress forums答案。只要讓ValueMember屬性取消分配,並將控件的EditValue屬性設置爲要選擇的項目。以@DmitryG爲例:

var dataSource = new List<Person>(); 
p1 = new Person(){ ID=0, Name="John", Age=27 }; 
dataSource.Add(p1); 
//... 
dataSource.Add(new Person(){ ID=101, Name="Mary", Age=23 }); 
lookupEdit1.Properties.DataSource = dataSource; 
lookupEdit1.Properties.DisplayMember = "Name"; 
//... 
lookupEdit1.EditValue = p1; 

在這種情況下,它將被綁定到對某個項目的引用。

4

根據LookupEdit.ValueMember屬性,您應該根據數據源中的值設置LookupEdit.EditValue屬性。

這裏是證明了這一方法的示例:

var dataSource = new List<Person> { 
    new Person(){ ID=0, Name="John", Age=27 }, 
    //... 
    new Person(){ ID=101, Name="Mary", Age=23 }, 
}; 
lookupEdit1.Properties.DataSource = dataSource; 
lookupEdit1.Properties.DisplayMember = "Name"; 
lookupEdit1.Properties.ValueMember = "ID"; 

lookupEdit1.EditValue = 101; // Select Person with ID==101 
//... 
lookupEdit1.EditValue = lookupEdit1.Properties.GetDataSourceValue("ID", 1); // Select Person from second row by its ID 
+0

感謝@DmitryG,但我像'comboBox1.SelectedItem =項照顧;',不用注意對象的關鍵。 –

+1

@ guillegr123 LookUp不是一個ComboBox,因此您應該使用鍵值來定位和選擇其RepositoryItemLookUpEditBase.ValueMember字段包含此鍵值的行......使用以下內容:'lookupEdit1.EditValue = item.ID;' – DmitryG

0

下面是選擇第一價值指數的簡單解決方案:LookUpEdit1.EditValue=TryCast(LookUpEdit1.Properties.DataSource,DataTable).Row(0).Item(0).ToString