1

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

    }
4

2 回答 2

0

到目前为止,做你想做的最简单overrideToString()方法是在你的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.

于 2013-10-30T12:15:41.040 回答
0

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

无论如何,如果您不想拥有将两者结合的属性(如@Blam 所说),您还可以为带有 MultiValueConverter 的组合框提供项目模板。

看看: http: //blog.csainty.com/2009/12/wpf-multibinding-and.html

这样,组合框的 itemssource 可以是 Customer 类,您可以用它做“事情”,而不是纯字符串。

问候,

于 2013-10-30T13:23:18.897 回答