DevExpress Winforms:如何在searchlookupedit框中设置正确的值?

时间:2018-02-27 14:31:53

标签: c# winforms devexpress

所以现在我对我的winforms SearchLookUpEdit进行了Form控制,然后我填写了employeeBO's(实际上只有IdNameBO,其中包含员工ID和姓名)。当我选择一个值时,它知道选择了正确的值/ BO(因为我可以完美地将数据传递给其他方法/视图)。

但是,在我的winforms的SearchLookUpEdit控件中,它显示为文本blablabla.Bo.IdNameBO

为什么会这样?如何设置在SearchLookUpEdit控件中显示的员工姓名?

现在这是我的所有代码:

IEmployeeService employeeService = _controller.GetContainer().Resolve(typeof(IEmployeeService), "") as IEmployeeService;
_response = new Response<IdNameBO>();
_response = employeeService.GetSL();

searchLookUpEdit1.Properties.DataSource = _response.Values;
            searchLookUpEdit1.Properties.View.PopulateColumns(searchLookUpEdit1.Properties.DataSource);
searchLookUpEdit1.Properties.View.Columns["Id"].Visible = false;
searchLookUpEdit1.Properties.View.Columns["IsNew"].Visible = false;
searchLookUpEdit1.Properties.View.Columns["Display"].Caption = Resources.App.App.RegisterLblContactpersoon;  

可能是因为我的数据源填充了blablabla.Bo.IdNameBO's,这就是为什么它会在SearchLookUpEdit控件框中显示该值?

编辑:这是它的外观:enter image description here

EDIT2:我添加了以下代码,但无济于事:

searchLookUpEdit1.EditValue = "test edit value";
searchLookUpEdit1.Properties.ValueMember = "test value member";
searchLookUpEdit1.Properties.DisplayMember = "test display member";

1 个答案:

答案 0 :(得分:1)

您需要填写DisplayMember和ValueMember属性 这些属性用于告诉SearchLookEdit Properties.DataSource中用于显示和链接的字段。

在你的例子中,它可能需要像这样

searchLookUpEdit1.Properties.ValueMember = "Id";
searchLookUpEdit1.Properties.DisplayMember = "Display";

使用可视化设计器可以比在代码中更好地设置它们,因为您可以从列表中选择列,至少如果您在那里设置了属性Datasource。 并且使用设计器还设置了(DataBindings)属性,使用正确的列名设置EditValue

(DataBindings).EditValueEditValue之间存在差异 第一个用于告诉控件要绑定到哪个列,通常使用可视化设计器设置,第二个可用于在代码中设置/读取所选记录。