2011-08-12 73 views
0

我有类的对象像组合框没有绑定

MYDepartment myDepartment = new MYDepartment(); 

然后列出定义如下

Ilist<MYDepartment> listDepartment=new Ilist<MYDepartment>(); 

列表逐一

listDepartment.Add(myDepartment); 

现在我添加对象已定义DataTable和DataRow

DataTable dtDepartments=new DataTable(); 
DataRow dr = dtDepartments.NewRow(); 
dr["DepartmentID"] = myDepartment.DepartmentID; 
dr["Name"] = myDepartment.DepartmenrName; 
dr["Description"] = myDepartment.DepartmentDescription; 
dtDepartments.Rows.Add(dr); 

DepartmentForm azhaform = new DepartmentForm(); 
azhaform.combox1.DataSource = dtDepartments; 
azhaform.combobox1.ValueMember = "DepartmentID"; 
azhaform.combobox1.DisplayMember = "Name"; 

,但它并没有表现出Combobox.Whats错了蚂蚁的事情与我的代码 请帮助

回答

1

请您DisplayMember属性到DepartmenrName

像这样:

azhaform.combobox1.DisplayMember = "DepartmenrName"; 

你确定它没有表现出什么?它应该只显示一个项目,因为您只向源表格添加了一行。

编辑:对不起,我张贴上面的错误。我太习惯填充列表<> :)。我试过你的代码,它工作正常。麻烦必须与别的东西。请取消我的票:)

0

虽然我还没有与我的编辑检查,但它似乎我已经修改了它下面一个小问题...

DepartmentForm azhaform = new DepartmentForm(); 
    azhaform.combobox1.DataSource = dtDepartments; 
    azhaform.combobox1.ValueMember = "DepartmentID"; 
    azhaform.combobox1.DisplayMember = "Name"; 
0

似乎有相当一你的代码中几乎没有错误,所以我不确定我是否应该从字面上理解它(例如“combox1”与“combobox1”),但是我能够立即看到的一个错误是,你正在设置数据源在组合框之前已经指定了ValueMember和DisplayMember。我还没有测试过这是否会导致你的问题,但它绝对看起来是错误的。

0

这可能不是你想要的,但我用的BindingSource组件,只需点击智能标签在组合框和检查使用数据绑定物品,接下来点击usualy存档此添加项目数据源和选择对象在数据源窗体中,并选择您的MYDepartment类。

Wizard

这机器会自动在窗体上添加的BindingSource组件(在我的VS它命名为mYDepartmentBindingSource)。

组合框智能标签

下一页点击一次做到这一点:

ComboBox Property

现在你可以添加数据:

mYDepartmentBindingSource.Add(new MYDepartment() { DepartmentID=1, DepartmenrName="Abc" }); 
    mYDepartmentBindingSource.Add(new MYDepartment() { DepartmentID = 2, DepartmenrName = "Bca" });