获取 RightTapped GridViewItem
Get RightTapped GridViewItem
我有一个 GridView
存储用户添加到 collection 的歌曲:
<GridView x:Name="MusicGridView" Margin="10" IsItemClickEnabled="True" ItemClick="Play_Song" Grid.Row="0" ItemsSource="{Binding Songs, ElementName=thisPage, Mode=OneWay}" SelectionMode="None">
<GridView.ItemTemplate>
<DataTemplate>
<Grid Height="100" Width="100" RightTapped="Song_RightTapped">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Rectangle Grid.Row="0" Grid.RowSpan="2" Fill="#FF1F4E79"/>
<Image Source="{Binding Path=AlbumArt.Source}" Grid.Row="0" Height="40" Width="40" Margin="10,10,10,0"/>
<TextBlock Text="{Binding Title}" Foreground="White" VerticalAlignment="Bottom" HorizontalAlignment="Center" Grid.Row="1" Margin="5" TextWrapping="Wrap"/>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
当 Grid
为 right-tapped 时(我似乎无法为实际项目设置 RightTapped
属性)我显示 PopupMenu
.但是,发件人当然是 Grid
本身,如果不采取看起来非常奇怪的解决方法,我找不到获得实际 GridViewItem
的方法。获取 GridView
的选定项不是一个选项,因为它没有启用选择。有没有一种简单的方法可以将项目作为 GridViewItem
?
如果我正确理解你的问题,你想要获取绑定对象而不是 GridView。
如果是这样的话,你可以试试这个。
private void Song_RightTapped(object sender, RightTappedRoutedEventArgs e)
{
Song song = (sender as Grid).DataContext as Song;
// Show PopupMenu
// ...
}
我有一个 GridView
存储用户添加到 collection 的歌曲:
<GridView x:Name="MusicGridView" Margin="10" IsItemClickEnabled="True" ItemClick="Play_Song" Grid.Row="0" ItemsSource="{Binding Songs, ElementName=thisPage, Mode=OneWay}" SelectionMode="None">
<GridView.ItemTemplate>
<DataTemplate>
<Grid Height="100" Width="100" RightTapped="Song_RightTapped">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Rectangle Grid.Row="0" Grid.RowSpan="2" Fill="#FF1F4E79"/>
<Image Source="{Binding Path=AlbumArt.Source}" Grid.Row="0" Height="40" Width="40" Margin="10,10,10,0"/>
<TextBlock Text="{Binding Title}" Foreground="White" VerticalAlignment="Bottom" HorizontalAlignment="Center" Grid.Row="1" Margin="5" TextWrapping="Wrap"/>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
当 Grid
为 right-tapped 时(我似乎无法为实际项目设置 RightTapped
属性)我显示 PopupMenu
.但是,发件人当然是 Grid
本身,如果不采取看起来非常奇怪的解决方法,我找不到获得实际 GridViewItem
的方法。获取 GridView
的选定项不是一个选项,因为它没有启用选择。有没有一种简单的方法可以将项目作为 GridViewItem
?
如果我正确理解你的问题,你想要获取绑定对象而不是 GridView。 如果是这样的话,你可以试试这个。
private void Song_RightTapped(object sender, RightTappedRoutedEventArgs e)
{
Song song = (sender as Grid).DataContext as Song;
// Show PopupMenu
// ...
}