2

listViewを書きました

<ListView 
  SelectionChanged="MySelectionChanged" 
  ScrollViewer.CanContentScroll="False"
  Background="Transparent" 
  x:Name="uiListView" 
  ItemTemplate="{StaticResource ItemTemplate}" 
  ItemsSource="{Binding Albums}" 
  Width="117" 
  Height="Auto"
  BorderThickness="0" 
  ScrollViewer.HorizontalScrollBarVisibility="Hidden"
  ScrollViewer.VerticalScrollBarVisibility="Hidden" />

そしてそれをにバインドします

public class ListImage
{
    public ListImage(string cover, string title, string isvideo)
    {
        Cover = cover;
        Title = title;
        isVideo = isvideo;

    }

    public string Cover { get; set; }
    public string Title { get; set; }
    public string isVideo { get; set; }
}

この方法でアイテムを追加します:

uiListView.Items.Add(new ListImage(@"C:\tablet\3kings_full.jpg", @"Title", "false"));
uiListView.Items.Add(new ListImage(@"C:\tablet\3kings_full.jpg", @"Title", "true"));
uiListView.Items.Add(new ListImage(@"C:\tablet\3kings_full.jpg", @"Title", "false"));
uiListView.Items.Add(new ListImage(@"C:\tablet\3kings_full.jpg", @"Title", "true"));
uiListView.Items.Add(new ListImage(@"C:\tablet\3kings_full.jpg", @"Title", "false"));
uiListView.Items.Add(new ListImage(@"C:\tablet\3kings_full.jpg", @"Title", "true"));
uiListView.Items.Add(new ListImage(@"C:\tablet\3kings_full.jpg", @"Title", "false"));
uiListView.Items.Add(new ListImage(@"C:\tablet\3kings_full.jpg", @"Title", "true"));
uiListView.Items.Add(new ListImage(@"C:\tablet\3kings_full.jpg", @"Title", "false"));
uiListView.Items.Add(new ListImage(@"C:\tablet\3kings_full.jpg", @"Title", "true"));

すべてがいいです。クリックした要素のListViewItemにアクセスする必要があるので

private void MySelectionChanged(object sender, SelectionChangedEventArgs e)
{
    MessageBox.Show(uiListView.Items[uiListView.SelectedIndex].GetType().ToString());
}

しかし、これはListViewItemの代わりにListImageタイプを返します。どうすればアクセスできますか?

よろしくお願いします

4

2 に答える 2

1

アプローチを使用するListBox.ItemContainerGeneratorか、場合によっては変更することができます。ListBox.ItemContainerStyleプロパティを使用して、必要なプロパティを設定できる可能性ListBoxItemがあります。

于 2012-09-25T12:09:54.710 に答える
0

user1697180、WinFormsのバックグラウンドから来たのだろうか?

WPFは、少なくともXAMLでははるかにデカラレーション的であり、切り替えを行う際には、物事を別の方法で考える必要があることがわかりました。

あなたは両方ともアイテムソースにバインドされており、アイテムを個別に提供していることに注意してください。アイテムのソースはアイテムのコレクションであると想定されているため、アイテムにアイテムを追加する必要もありません。

また、通常、listViewItemに必要なプロパティにバインドされているプロパティをアイテムで使用するため、アイテム自体にアクセスする必要はありません。

于 2012-09-25T12:35:11.843 に答える