【发布时间】:2019-08-28 20:39:32
【问题描述】:
我有一个 ItemsControl,它用一个 ScrollViewer 包装它的 ItemPresenter。该 ItemPresenter 显示一个 ListView。因此我在一个集合中有一个集合。
现在,我只希望 ScrollViewer 具有滚动功能,因此我继续从内部 ListView 中删除了滚动功能。
问题是我的滚动事件被 ListView 搞砸了。只要我的手指触摸内容区域,它就会选择 ListViewItems 而不是滚动。
如果用户尝试单击或滚动,我如何通过路由事件来判断?如果是滚动,如何防止它选择 ListViewItems?
<ItemsControl ItemsSource="{Binding Countries}" >
<ItemsControl.Template>
<ControlTemplate>
<ScrollViewer PanningMode="VerticalOnly">
<ItemsPresenter/>
</ScrollViewer>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ListView ItemsSource="{Binding Cities}">
<ListView.Template>
<ControlTemplate>
<ItemsPresenter/>
</ControlTemplate>
</ListView.Template>
</ListView>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
【问题讨论】:
标签: c# .net wpf xaml routed-events