Wpf 在组合框中列出sql表中的名字和姓氏

Wpf 在组合框中列出sql表中的名字和姓氏,wpf,Wpf,我在wpf中有一个组合框,我想从sql表中列出名字和姓氏。它一次只允许一个条目。我还想给每个人一个标题,但ValueMemberPath未被识别 private void displayCust() { using (Entities c = new Entities()) { cbUsers.ItemsSource = c.Customer.ToList(); //cbUsers.ValueMemberPa

我在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";
        }

    }

到目前为止,最简单的方法是重写customer类中的ToString方法:

然后你可以这样做:

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();
}

但是,这将导致在组合框中输入纯字符串值。

@Sheridan解决方案是一个很好的解决方案

无论如何,如果您不想像@Blam所说的那样拥有一个结合了这两者的属性,那么您还可以为combobox提供一个带有多值转换器的项模板

看看:

这样,combobox的itemssource可以是Customer类,您可以用它来做事情,而不是作为一个普通字符串


关于,

在Customer中创建一个公共属性全名并在其中合并。
using (Entities c = new Entities())
{
    cbUsers.ItemsSource = c.Customer.Select(c => string.Format("{0} {1}", c.FirstName, 
        c.LastName)).ToList();
}