我使用实体框架6从数据库建模客户端列表。我成功地将集合绑定到一个列表框。我无法弄清楚如何做的是使用多个字段从对象绑定到Windows窗体ListBox的DisplayMember
属性。
This works…
myLsiTBox.DataSource = context.Clients.ToList();
myLsiTBox.DisplayMember = "CompanyName";
myLsiTBox.ValueMember = "id";
This failed…
myLsiTBox.DataSource = context.Clients.ToList();
myLsiTBox.DisplayMember = "CompanyName" + "-" + "LastName" + " - " + "FirstName";
myLsiTBox.ValueMember = "id";
如何在ListBox中显示多个字段的内容?
如果这是您的客户:
public class Client
{
public string CompanyName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
你可以创建一个ClientViewModel,然后将列表框数据源绑定到ClientViewModel列表,并将DisplayMember设置为"FullDetails"。
public class ClientViewModel
{
public string CompanyName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string FullDetails { get { return string.Format("{0}-{1} - {2}", this.CompanyName, this.LastName, this.FirstName)} }
public ClientViewModel(Client c)
{
this.CompanyName = c.CompanyName;
this.FirstName = c.FirstName;
this.LastName = c.LastName;
}
}
. .或者如果可以的话,直接将FullDetails属性添加到原来的Client类中。