DevExpress LookupEdit,按项目选择

时间:2013-06-20 16:37:23

标签: winforms devexpress

如何按项设置DevExpress LookupEdit的选定元素?即,给定LookupEdit数据源的一个对象,根据它设置LookupEdit的选择。

3 个答案:

答案 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