2013-04-11 45 views
1

嗨,我想从数据库使用EF4填充列表视图。我试图填充下面的代码,但没有填充在列表视图中,虽然项目正在抓取。请帮助我如何继续。使用实体框架填充Listview项时出错4

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); 
     } 
    } 

在此先感谢。

回答

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); 
}