如何按项设置DevExpress LookupEdit的选定元素?即,给定LookupEdit数据源的一个对象,根据它设置LookupEdit的选择。
答案 0 :(得分:4)
您应该根据LookupEdit.EditValue属性从数据源设置LookupEdit.ValueMember属性值。
以下是演示此方法的示例:
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
答案 1 :(得分: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;
在这种情况下,它将被绑定到对项目的引用。
答案 2 :(得分:0)
以下是选择第一个价值指数的简单解决方案:LookUpEdit1.EditValue=TryCast(LookUpEdit1.Properties.DataSource,DataTable).Row(0).Item(0).ToString