有条不紊地点击ItemClick

时间:2015-03-25 18:07:16

标签: xaml windows-runtime

我有一个ListView,其中填充的项目应该在点击时执行操作,但仅限于在某些区域点击时:

XAML:

<ListView
  SelectionMode="None"
  IsItemClickEnabled="True"
  ItemClick="MyListView_ItemClick">
  <ListView.ItemTemplate>
    <DataTemplate>
      <custom:MyListViewItemControl Tapped="ListViewItem_Tapped"/>
    </DataTemplate>
  </ListView.ItemTemplate>
</ListView>

代码隐藏:

private void MyListView_ItemClick(object sender, ItemClickEventArgs e)
{
    if (e.OriginalSource is Image) return; // Ignore if clicked on Image
    if (this.ItemClickHandler != null)
    {
         this.ItemClickHandler(this, e);
    }
}

在此代码中,e.OriginalSource始终为ListView,因此检查OriginalSource类型的方法不起作用。

我也可以在单个ListView项目上使用Tapped事件,但这会更改收到的事件类型(到TappedRoutedEventArgs),所以我必须一直更改我的处理程序签名堆栈,如果可能的话,我想避免。 (我不能只创建一个新的ItemClickEventArgs因为没有办法设置我能看到的值,而且它是一个密封的类,所以我不能将它子类化。)

0 个答案:

没有答案