我有一个GridView
像下面UWP:如何获得RightTapped GridView的项目
<GridView
SelectionMode="None"
IsItemClickEnabled="True"
IsRightTapEnabled="True"
ItemsSource="{x:Bind SymbolItems}"
ItemClick="SymbolGridView_ItemClick"
RightTapped="SymbolGridView_RightTapped">
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:SoundSymbolItem">
<local:SymbolControl/>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
我有一个ItemClick
处理程序,我可以得到的点击symbolItem
成功
现在,我想为RightTapped
事件做类似的事情,但它不能得到正确的轻敲项目。
private void SymbolGridView_RightTapped(object sender, RightTappedRoutedEventArgs e)
{
SymbolItem symbolItem = (sender as GridViewItem).DataContext as SymbolItem;
MyMediaElement.Source = new Uri(this.BaseUri, symbolItem.ExampleAudio);
}
我在这个问题Get RightTapped GridViewItem答案模型来写我的右手拍了拍上面的处理程序,但它不工作。当我右键单击gridview项目时,会触发NullReferenceException。
谢谢,'var student =(e.OriginalSource as FrameworkElement)?. DataContext as Student;'适合我。你说在我的情况下,OriginalSource是'ListViewItemPresenter'。为什么它不是'GridViewItemPresenter'? –