【问题标题】:Qualified type displayed in combobox instead of property value组合框中显示的限定类型而不是属性值
【发布时间】:2012-10-09 07:12:51
【问题描述】:

我的组合框有问题。 我设置了包含对象列表、DisplayMember 和 ValueMember 的 DataSource,但有时组合框会显示放置对象类的命名空间。例如:Project.Interface.Object

cmbAuto.DataSource = Collections.ProfileList.FindAll(t => t.IsAuto);
cmbAuto.DisplayMember = "Name";
cmbAuto.ValueMember = "ID";
cmbAuto.SelectedIndex = -1; 

【问题讨论】:

  • 这里是代码: cmbAuto.DataSource = Collections.ProfileList.FindAll(t => t.IsAuto); cmbAuto.DisplayMember = "名称"; cmbAuto.ValueMember = "ID"; cmbAuto.SelectedIndex = -1;

标签: c# winforms combobox


【解决方案1】:

我建议你使用Where operator

cmbAuto.DataSource = Collections.ProfileList.Where(t => t.IsAuto);

注意:FindAll() 是 List 类型的函数,它不是 Where 那样的 LINQ 扩展方法。

【讨论】:

  • 不幸的是,Where 子句不起作用。Project.Interface.Object 再次出现。其他建议?
  • 在这种情况下,您使用 ProfileList.Cast.Where(t => t.IsAuto) 对您的类型进行投射
  • 我已经通过覆盖对象的 ToString 方法解决了这个问题。
【解决方案2】:

我已经通过覆盖对象的 ToString 方法解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多