我试图将我的列表框的显示成员设置为来自linq查询的串联值:

var query =
     from a in db.Customers
     select a;

listBox1.DataSouce = query;


我希望能够通过执行以下操作来设置显示成员:

listBox1.DisplayMember = "FirstName" + "LastName";


但显然那是行不通的。

我该怎么做呢?我想最棘手的部分是数据源是linq查询结果对象。但是它是可索引的,所以必须有某种方法。

最佳答案

如果您有一个自己编写或已生成但可以扩展的Customer类,那么我认为最好的方法是为其添加新属性

namespace SameNameSpaceAsGeneratedCustomerClass {
  public partial class Customer {
    public string FullName { get { return FirstName + " " + LastName; } }
  }
}


如果您无法执行此操作,则需要查看创建ValueConverter http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx

08-18 14:10