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(s) 添加到 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 回答