使用LINQ生成ComboBox.ItemsSource时出现DisplayMemberPath和SelectedValuePath问题

时间:2015-03-08 12:38:27

标签: c# wpf linq combobox

XAML代码:

<ComboBox Name="comboBoxAccountName" DisplayMemberPath="AccountName" SelectedValuePath="AccountID" />

ItemComboBoxAccount类:

public class ItemComboBoxAccount
{
    private int accountID;
    private String accountName;

    public int AccountID
    {
        get { return accountID; }
        set { accountID = value; }
    }

    public String AccountName
    {
        get { return accountName; }
        set { accountName = value; }
    }
}

LINQ查询:

comboBoxAccountName.ItemsSource = (from accounts in dataContext.Accounts
                                  select new { accountName = accounts.accountName, accountID = accounts.accountID }
                                  ).AsEnumerable()
                                  .Select(x => new ItemComboBoxAccount { AccountID = x.accountID, AccountName = x.accountName })
                                  .ToList();

ComboBox不显示任何项目,帐户中的帐户数量与行数一样多,但行仍为空白。我想显示AccountName。

1 个答案:

答案 0 :(得分:1)

好吧,对于实体,我会使用lambda表达式设置项目源。这样我就可以从一种方法动态填充组合框,而不必使用数据绑定。

我使用sql然后在context.tt文件中创建db的实例。

操纵以下内容供您自己使用:

使用&#34; BankEntities&#34;表示数据库实体。

尝试:

combobox.itemsource = BankEntities.instance.BankAccounts.where(x => x.AccountName == x.AccountName).ToList();

combobox.itemsource = BankEntities.instance.BankAccounts.where(x => x.AccountId == x.AccountId).ToList();