ComboBox没有绑定

时间:2011-08-12 11:25:30

标签: c# winforms combobox data-binding

我有像

这样的类的对象
MYDepartment myDepartment = new MYDepartment();

然后List定义如下

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中显示蚂蚁的东西。我的代码出错了 请帮忙

4 个答案:

答案 0 :(得分:1)

请将您的DisplayMember属性设为DepartmenrName

像这样:

   azhaform.combobox1.DisplayMember = "DepartmenrName";

你确定没有显示任何内容吗?它应该只显示一个项目,因为您只在源表中添加了一行。

编辑:对不起我上面发布的错误。我太习惯用List&lt;&gt;填充了:)。我尝试了你的代码,它工作正常。麻烦必须与其他东西。请取消我的投票:)

答案 1 :(得分:0)

虽然我没有用我的编辑器检查它,但它似乎有点问题,因为我修改了它如下...

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

答案 2 :(得分:0)

你的代码中似乎有很多错误,所以我不确定我是否应该把它过于字面意思(例如“combox1”vs“combobox1”),但我能立刻看到的一个错误就是你在指定ValueMember和DisplayMember之前,在组合框上设置数据源。我还没有测试过这是否会导致你的问题,但它肯定是错误的。

答案 3 :(得分:0)

这可能不是您想要的,但我通常使用 BindingSource 组件对其进行归档,只需点击 ComboBox 中的智能标记,然后选中使用数据绑定项< / strong>,然后点击添加项目数据源并在数据源表单上选择对象,然后选择 MYDepartment 类。

Wizard

这会自动在表单上添加 BindingSource 组件(在我的VS中名为 mYDepartmentBindingSource )。

然后再次点击 ComboBox 智能标记并执行以下操作:

ComboBox Property

现在您可以添加数据:

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