【发布时间】:2015-10-04 18:00:14
【问题描述】:
我有一个GridView,用于存储用户添加到收藏中的歌曲:
<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 被右击时(我似乎无法为实际项目设置RightTapped 属性)我显示PopupMenu。但是,发件人当然是Grid 本身,如果不采取看起来非常奇怪的解决方法,我无法找到获取实际GridViewItem 的方法。获取GridView 的选定项目不是一个选项,因为它没有启用选择。有没有一种简单的方法可以将项目作为GridViewItem 获取?
【问题讨论】:
-
为什么没有启用选择?
-
因为我不想让他们选择歌曲;我只是在它被点击时播放它。如果一切都失败了,我将启用选择,但绝对不希望这样做。
标签: c# xaml windows-10 uwp