1

我对 .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>

提前谢谢了。

维格姆酋长

4

2 回答 2

1

you have to create a StackPanel for your Content property and add the Image and text to that StackPanel. e.g.

<Window.Resources>
    <DataTemplate x:Key="ItemTemplate">
        <StackPanel Orientation="Horizontal">
            <Image Width="10" Height="10" Stretch="Fill" Source="{Binding Cover}"/>
        <Label Content="{Binding Title}" />
        </StackPanel>
    </DataTemplate>
</Window.Resources>


<Grid x:Name="grid">
    <ListView ItemTemplate="{StaticResource ItemTemplate}" ItemsSource="{Binding Albums}" />
</Grid>
于 2012-10-07T14:22:00.687 回答
0

您添加了 3 行并获得了 3 行。应该不足为奇。

ListViewItem 只有一个内容。

您需要具有这两个属性的类或支柱。
然后将这些对象添加到 List 之类的集合中,并将 ListView 绑定到该集合。
然后在 GridViewColumn 中,绑定路径是属性的名称。

public class Album 
{
    public string Title { get; set; }
    public Image Img  { get; set; }
} 
于 2012-10-07T15:19:13.483 回答