Winforms 为什么组合框显示对象?
我有一个组合框,我想填充一些信息。代码如下:Winforms 为什么组合框显示对象?,winforms,Winforms,我有一个组合框,我想填充一些信息。代码如下: cmbSelectProject.Items.Clear(); cmbSelectProject.ValueMember = "Sid"; cmbSelectProject.DisplayMember = "Name"; cmbSelectProject.DataSource = new BindingSource(ApiCaller.LstPro
cmbSelectProject.Items.Clear();
cmbSelectProject.ValueMember = "Sid";
cmbSelectProject.DisplayMember = "Name";
cmbSelectProject.DataSource = new BindingSource(ApiCaller.LstProjects, null);
所以,有一个具有现有属性“Sid”和“Name”的类项目。LstProjects调用返回项目列表。因此,我希望“Name”不显示,“Sid”用作值。。相反,我在下拉列表中看到了一堆项目对象
我在这里做错了什么?谢谢你的建议。试试这个序列
尝试类似的方法:
var projects=newbindingslist(ApiCaller.LstProjects);cmbSelectProject.DataSource=新绑定源(项目,空)代码>。否则,发布项目类的原型和ApiCaller.LstProjects
返回的实际类型。(您应该绑定到具体类型或类型定义,例如,typeof(List)
,如果此时集合为空或未定义)顺便说一句,为什么cmbSelectProject.Items.Clear()代码>?您以前有其他设置为数据源吗?Jimi,谢谢您的帮助。。将检查您当前的分配顺序是否正确:首先是DisplayMember
,然后是ValueMember
,然后是DataSource
。如果在设置数据源时出现了某种问题,那么当时是由数据源本身或其内容引起的。这就是为什么我问您是否在控件中设置了另一个数据源。在分配另一个之前,请尝试将其设置为null
。运行此代码时,ApiCaller.LstProjects
的实际内容也很重要;在何处运行此代码也很重要。