【发布时间】:2017-05-02 22:27:34
【问题描述】:
我有一个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
private void SymbolGridView_ItemClick(object sender, ItemClickEventArgs e)
{
var symbolItem = (SymbolItem)e.ClickedItem;
MyMediaElement.Source = new Uri(this.BaseUri, symbolItem.SymbolAudio);
}
现在,我想为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。
【问题讨论】: