1

.NET 4.0 のリストビュー コントロールに不満を感じています。行の最初の列にテキストを追加してから、2 番目の列に画像を追加し、3 番目の列 (すべて一番上の行) にテキストを追加してから、次の行にも同じことを行います。ただし、私のコードは、一番上の行の 3 つの列すべてにテキストを追加し、次に画像を次の行に追加し、次にテキストを次の行に追加するだけです。行/列のインデックスを指定する方法がわかりません (たとえば、2 行目の 3 列目は [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

Content プロパティの を作成し、StackPanelその StackPanel に Image とテキストを追加する必要があります。例えば

<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 には単一のコンテンツしかありません。

これら 2 つのプロパティを持つクラスまたはストラットが必要です。
次に、これらのオブジェクトを List などのコレクションに追加し、ListView をコレクションにバインドします。
次に、GridViewColumn では、バインディング パスはプロパティの名前になります。

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