5

私はこのコードを持っています:

    private void FillCombobox()
    {
        using (InventoryEntities c = new InventoryEntities(Properties.Settings.Default.Connection))
        {
            List<Customer> usepurposes = c.Customers.ToList();
            DataTable dt = new DataTable();
            dt.Columns.Add("id");
            dt.Columns.Add("name");
            foreach (Customer usepurpose in usepurposes)
            {
                dt.Rows.Add(usepurpose.id, usepurpose.name);
            }
            comboBox1.ValueMember = dt.Columns[0].ColumnName;
            comboBox1.DisplayMember = dt.Columns[1].ColumnName;
            comboBox1.DataSource = dt;

        }
    }

そして私はこのメソッドを次のように呼び出します:

    private void frmBillIn_Load(object sender, EventArgs e)
    {
        FillCombobox();
    }

アプリを実行すると、コンボボックスに顧客(アイテム)が表示されません。

Model.Customerを表示するだけです

何が問題ですか??

私は多くの解決策を試しましたが、どれも機能していません。

4

4 に答える 4

8

Entity Framework の世界と DataSet の世界という 2 つの世界を混在させる必要はありません。直接バインド:

    using (InventoryEntities c = new InventoryEntities(Properties.Settings.Default.Connection))
    {
        comboBox1.DataSource    = c.Customers;
        comboBox1.ValueMember   = "id";
        comboBox1.DisplayMember = "name";
    }

これが機能しない場合は、列名が「名前」と異なる可能性があります (「名前」でしょうか?)。

于 2012-07-31T17:34:09.190 に答える
6

「using」を使用する場合は、接続を閉じる前に評価のために ToList() を配置する必要があります。use ItemsSource 、 ValueMember 、および DisplayMember は大文字と小文字を区別します

using (InventoryEntities c = new InventoryEntities())
    {
        comboBox1.ItemsSource   = c.Customers.toList();
        comboBox1.ValueMemberPath   = "Id";
        comboBox1.DisplayMemberPath = "Name";
    }

この助けを願っています。

于 2012-07-31T19:27:21.517 に答える
0

以下のサンプルを参照してください。(名前参照 => DAL=データ アクセス レイヤー、projectEntities = エンティティ セット名) これがお役に立てば幸いです..

List itemsList = new List();

            using (DAL.projectEntities en = new DAL.projectEntities())
            {
                foreach (var item in en.tableName.Where(a => a.tableName != null).ToList())
                {
                    itemsList.Add(item.tableFieldName);
                }                                   
            }

            comboboxTable.ItemsSource = itemsList;
于 2014-03-26T10:52:13.470 に答える