【发布时间】:2013-06-20 16:37:23
【问题描述】:
如何设置 DevExpress LookupEdit 的选中元素?即,给定 LookupEdit 的数据源的一个对象,根据它设置 LookupEdit 的选择。
【问题讨论】:
标签: winforms devexpress
如何设置 DevExpress LookupEdit 的选中元素?即,给定 LookupEdit 的数据源的一个对象,根据它设置 LookupEdit 的选择。
【问题讨论】:
标签: winforms devexpress
您应该根据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
【讨论】:
comboBox1.SelectedItem = item; 之类的东西,而不关心对象的键。
lookupEdit1.EditValue = item.ID;
一段时间后,我在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;
在这种情况下,它将被绑定到一个项目的引用。
【讨论】:
这里是选择第一个值索引的简单解决方案:LookUpEdit1.EditValue=TryCast(LookUpEdit1.Properties.DataSource,DataTable).Row(0).Item(0).ToString
【讨论】: