日期:2014-05-20  浏览次数:21088 次

关于wpf的ListView,想用该控件通过后台代码添加新项,添加字符串会,但控件就不行了,还望高手帮忙解决!
C# code

  已定义List<Canvas> li= new List<Canvas>();
  private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
  {
     Canvas c1 = new Canvas();
     Canvas c2 = new Canvas();
     Canvas c3 = new Canvas();
     Canvas c4 = new Canvas();
     
     BitmapImage bi = new BitmapImage();     //图片      
      bi.BeginInit();
     bi.UriSource = new Uri("UserPic/P_1.png", UriKind.Relative);           
     bi.EndInit();
     Image myImage1 = new Image();       
     myImage1.Stretch = Stretch.Fill;
     myImage1.Width = 20;
     myImage1.Height = 20;
     myImage1.Source = bi;
     c1.Children.Add(myImage1);
     
     TextBlock t_Id = new TextBlock();
     t_Id.Text = "1023444";
     c2.Children.Add(t_Id);
     
     TextBlock t_Jifen = new TextBlock();
     t_Jifen.Text = "233";
     c3.Children.Add(t_Jifen);
     
     TextBlock t_Money = new TextBlock();
     t_Money.Text = "5000";
     c4.Children.Add(t_Money);
 
     li.Add(c1);
     li.Add(c2);
     li.Add(c3);
     li.Add(c4);

     ListViewItem lvItem1 = new ListViewItem();
     lvItem1.Content =li;     
     listview.Items.Add(lvItem1);
  }


显示结果为:如图

怎样就能显示正常的图片和文字了??急。。。。。。。。。。。。。。。。
还望高手们顶囊相助!!!
希望尽量按这个思路来处理,特别需要。。。


------解决方案--------------------
ListViewItem并不是你要显示的数据的UI
而是你要显示的数据的源,也就是数据本身

假设是ListView-GridView结构
你要做的是把源数据的属性绑定到listview的GridView列(column)上
例如item.id绑定到id列
item.name绑定到name列
item.pictureUrl绑定到picture列(通过定义这一列的CellTemplate来显示图片)
动态添加数据时只需要listview.Items.Add(item)就可以了

不要把数据和UI搞混了