Xaml 如何获取我在listview中持有的项目

Xaml 如何获取我在listview中持有的项目,xaml,listview,windows-8,Xaml,Listview,Windows 8,我正在win8中使用listview控件。我想在保留项目时添加一个事件,然后删除该项目 xaml和事件代码如下所示: <ListView x:Name="ImageList" VerticalAlignment="Bottom" Background="LightGray" Width="1050" BorderBrush="Black" BorderThickness="2" Grid.Column="1" Holding="ListView

我正在win8中使用listview控件。我想在保留项目时添加一个事件,然后删除该项目

xaml和事件代码如下所示:

<ListView x:Name="ImageList" VerticalAlignment="Bottom" Background="LightGray" Width="1050" BorderBrush="Black" BorderThickness="2" Grid.Column="1" 
                      Holding="ListView_Hold1"  SelectionChanged="OnSelectedChanged" SelectionMode="Single" Height="152" ScrollViewer.HorizontalScrollBarVisibility="Auto" ItemContainerStyle="{StaticResource ListViewItemStyle1}" Style="{StaticResource ListViewStyle1}">
                <ListView.ItemTemplate>
                    <DataTemplate>
                            <Image Opacity="0.7" Width="150" Height="125" Stretch="UniformToFill" Source="{Binding}" />
                    </DataTemplate>
                </ListView.ItemTemplate>
                <ListView.ItemsPanel>
                    <ItemsPanelTemplate>
                        <VirtualizingStackPanel Orientation="Horizontal"/>
                    </ItemsPanelTemplate>
                </ListView.ItemsPanel>
            </ListView>


private async void ListView_Hold1(object sender, Windows.UI.Xaml.Input.HoldingRoutedEventArgs e)
    {...}

私有异步void ListView_Hold1(对象发送方,Windows.UI.Xaml.Input.HoldingRoutedEventArgs e)
{...}
似乎我无法从holdingroutdEventArgs中获得任何信息,只能获得originalsource的属性。但这是图像,无法访问iteml

我发现了一个相对的问题:“如何在listview中获取单击的项目”。它可以通过获取selecteditem的属性来解决


有人能帮我吗?给我一些线索

在您的情况下,您应该能够从
HoldingRoutedEventArgs.OriginalSource.DataContext
获取它:(假设
ListView.ItemSource
图像模型的列表)


您可以使用
SelectedIndex
属性获取项目的索引(但对于这些工作,您必须通过按下并在按住项目后进行选择)

因此,要删除该项,可以使用RemoveAt()方法


这应该是可以接受的答案,只要确保将
OriginalSource
转换为
FrameworkElement
我首先更正了关于Hendras注释的答案,以便代码编译。
private async void ListView_Hold1(object sender, Windows.UI.Xaml.Input.HoldingRoutedEventArgs args)
{
   var source = (FrameworkElement)args.OriginalSource;
   var imageModel = (ImageModel)source.DataContext;
}
int i = imageList.SelectedIndex;
imageList.Items.RemoveAt(i);