所以现在我对我的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
控件框中显示该值?
EDIT2:我添加了以下代码,但无济于事:
searchLookUpEdit1.EditValue = "test edit value";
searchLookUpEdit1.Properties.ValueMember = "test value member";
searchLookUpEdit1.Properties.DisplayMember = "test display member";
答案 0 :(得分:1)
您需要填写DisplayMember和ValueMember属性
这些属性用于告诉SearchLookEdit Properties.DataSource
中用于显示和链接的字段。
在你的例子中,它可能需要像这样
searchLookUpEdit1.Properties.ValueMember = "Id";
searchLookUpEdit1.Properties.DisplayMember = "Display";
使用可视化设计器可以比在代码中更好地设置它们,因为您可以从列表中选择列,至少如果您在那里设置了属性Datasource
。
并且使用设计器还设置了(DataBindings)属性,使用正确的列名设置EditValue
(DataBindings).EditValue
和EditValue
之间存在差异
第一个用于告诉控件要绑定到哪个列,通常使用可视化设计器设置,第二个可用于在代码中设置/读取所选记录。