【问题标题】:Unable to bind List<T> to a combo box无法将 List<T> 绑定到组合框
【发布时间】:2018-05-05 09:53:14
【问题描述】:

我正在使用 win 表单并尝试填充组合框。这是我的代码-

comboBoxMaterial.DataSource = _materials;
comboBoxMaterial.DisplayMember = "name_ee_EE";
comboBoxMaterial.ValueMember = "tssaNameId";

_materials 是我创建的某种类型的列表。在调试器中是这样的-

问题是,当我的表单加载时,组合框是空的,但在调试器中我可以看到comboBoxMaterial.Items 中有项目。根据我设置的DisplayMemberValueMember,组合框应根据数据源填充。我也没有收到任何错误。

【问题讨论】:

  • 看起来您错过了 Displaymember 分配中的前导下划线?应该是 comboBoxMaterial.DisplayMember = "_name_ee_EE";尽管如此,这并不能解释为什么组合框看起来是空的。还有,T的那个_name_ee_EE,是不是一个属性(有get和set函数)?

标签: c# winforms


【解决方案1】:

我已更改代码以创建并选择一个新对象,其中idname 作为属性。就这样-

comboBoxMaterial.DataSource = _materials.Select(m => new { id = m.tssaNameId, name = m.name_en_CA}).ToList();
comboBoxMaterial.DisplayMember = "name";
comboBoxMaterial.ValueMember = "id";

所以现在可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-20
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多