关于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搞混了