我在wpf中有一个组合框,我想从sql表中列出名字和姓氏。它一次只允许一个条目。另外,我想给每个标题,但ValueMemberPath无法识别。
private void displayCust()
{
using (Entities c = new Entities())
{
cbUsers.ItemsSource = c.Customer.ToList();
//cbUsers.ValueMemberPath = "First";
cbUsers.DisplayMemberPath = "First";
cbUsers.DisplayMemberPath = "Last";
}
}
答案 0 :(得分:0)
到目前为止,执行所需操作的最简单方法是override
ToString()
类中的customer
方法:
public override string ToString()
{
return string.Format("{0} {1}", FirstName, LastName);
}
然后你可以这样做:
using (Entities c = new Entities())
{
cbUsers.ItemsSource = c.Customer.ToList();
}
或者,你可以这样做:
using (Entities c = new Entities())
{
cbUsers.ItemsSource = c.Customer.Select(c => string.Format("{0} {1}", c.FirstName,
c.LastName)).ToList();
}
但是,这会导致在string
输入简单的ComboBox
值。
答案 1 :(得分:0)
无论如何,如果你不想拥有一个兼顾两者的属性(如@Blam所说),你也可以使用MultiValueConverter为组合框提供一个项目模板。
看看:http://blog.csainty.com/2009/12/wpf-multibinding-and.html
这样,组合框的itemssource可以是Customer类,你可以用它来做“事情”,而不是一个普通的字符串。
此致