1

こんにちは、EF4 を使用してデータベースから Listview を作成しようとしています。以下のコードを入力しようとしましたが、アイテムがフェッチされているにもかかわらず、リストビューに何も入力されません。どのように進めればよいか教えてください。

 private void FillListView()
    {
        using (DiagnosoftDataContext context = new DiagnosoftDataContext())
        {
            var user = from c in context.Users
                          select new
                          {
                              Code = c.name,
                              Name = c.age,
                              Sex  = c.sex,
                              DOB =  c.dob,

                          };


            //Bind the ListView
            // Create items and subitems for each item.

            listView1.View = View.Details;
            ListViewItem lv = new ListViewItem("lv", 0);

            var item = user.ToList();

            foreach (var u in item)
            {
                lv.SubItems.Add(item[0].Code);
                lv.SubItems.Add(item[0].Name);
                lv.SubItems.Add(item[0].Sex);
                lv.SubItems.Add(item[0].DOB);

            }

            // Create columns for the items and subitems. 

            listView1.Columns.Add("Name", -2, HorizontalAlignment.Left);
            listView1.Columns.Add("Age", -2, HorizontalAlignment.Left);
            listView1.Columns.Add("Sex", -2, HorizontalAlignment.Left);
            listView1.Columns.Add("DOB", -2, HorizontalAlignment.Left);
        }
    }

前もって感謝します。

4

1 に答える 1

0

問題は、作成した ListViewItem を ListView に追加していないことです。

listView1.Items.Add(lv);

ListViewItem の作成は少し奇妙に思えます。foreach各ユーザーに、列挙の最初のユーザーの値を持つ 4 つのサブアイテムを追加しています。

それはあなたが望むものではなく、ユーザーごとにその値を持つアイテムを追加したいと思います。

foreach (var user in item){
  ListViewItem lv = new ListViewItem(user.Name);

  lv.SubItems.Add(user.Code);
  lv.SubItems.Add(user.Name);
  lv.SubItems.Add(user.Sex);
  lv.SubItems.Add(user.DOB);

  listView1.Items.Add(lv);
}
于 2013-04-11T11:00:30.823 に答える