【发布时间】:2012-10-07 14:15:23
【问题描述】:
我对 .NET 4.0 中的列表视图控件感到非常沮丧。我想将文本添加到一行的第一列,然后将图像添加到第二列,然后将文本添加到第三列(全部在顶行),然后对下一行执行相同操作。但是,我的代码只是将文本添加到顶行的所有三列,然后将图像添加到下一行,然后将文本添加到下一行。我不知道如何指定行/列索引(例如 [1,2] 用于第二行第三列)。
我知道这似乎是一个非常基本的查询,那里有很多信息,但我是 .NET 的新手,我读的越多,我就越困惑:-(
我的 c# 代码是:
ListViewItem lstItem1 = new ListViewItem();
lstItem.Content = "Picture 1";
lstView.Items.Add(lstItem);
Image lstImage = new Image();
ListViewItem lstItem2 = new ListViewItem();
lstItem2.Source = SrcBmp;
lstItemImage.Content = lstImage;
lstView.Items.Add(lstItem2);
ListViewItem lstItem3 = new ListViewItem();
lstItem3.Content = "Blah blah";
lstView.Items.Add(lstItem3);
这里是 XAML:
<ListView Height="412" HorizontalAlignment="Left" Margin="312,49,0,0" Name="lstView" VerticalAlignment="Top" Width="636" ItemsSource="{Binding}" FontSize="12">
<ListView.View>
<GridView>
<GridViewColumn Header="Photo No." Width="50"/>
<GridViewColumn Header="Photo" Width="150"/>
<GridViewColumn Header="Description" Width="300"/>
</GridView>
</ListView.View>
</ListView>
提前非常感谢。
维格姆酋长
【问题讨论】:
-
我认为您在这里将行与列混淆了。您的 XAML 看起来不错,但您的代码似乎在项目是列的假设下运行。它们是行。您需要创建一个具有 photoNo、Photo 和 description 属性的业务对象,然后将您的列表视图绑定到该对象的集合。 ListViewItems 的表现力不足以满足您的需求。
-
谢谢菲尔,我现在明白了。我没有将列与行混淆,但我误解了 listview ctrl 的作用。我假设它类似于 2D 数组,并且我可以为每个元素添加一个项目。我将创建一个结构并绑定它,再次感谢。