嵌套的 ListView 和触摸滚动?
Nested ListView and Touch Scrolling?
我正在开发一个 Windows 商店应用程序,我有一个 2 级嵌套的 ListView。 child-listview 的高度总是根据它拥有的项目数进行调整,因此它的滚动条不应该被使用/永远不会出现。
我的问题是,我希望当用户点击、按住并尝试在父列表视图上的任何位置滚动时,它应该滚动父列表视图。这适用于触摸设备。不幸的是,我需要 PARENT 列表视图的 DataTemplate 是可选的。因此,当使用尝试滚动时,什么也没有发生。
希望我说得有道理。
有什么方法可以触发父列表视图滚动吗?如果我单击 DataTemplate 之间的边界,然后尝试从那里滚动,它会正常工作,但我想要一种触摸友好的体验,能够从任何地方滚动感觉很自然。
下面是一个粗略的代码,我删除了一些不需要的部分:
<ListView DragOver="DragOver"
AllowDrop="True" >
<ListView.ItemTemplate>
<DataTemplate>
<ListView ManipulationMode="None"
SelectionMode="Single"
ScrollViewer.VerticalScrollBarVisibility="Hidden"
CanDragItems="True" Drop="ListViewDrop" DragItemsStarting="DragStarting"
AllowDrop="True" DragOver="DragOver" DragLeave="DragLeave"
>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
谢谢!
找出问题所在。我的 InnerListView 有 ManipulationMode="None"。去掉了就ok了
我正在开发一个 Windows 商店应用程序,我有一个 2 级嵌套的 ListView。 child-listview 的高度总是根据它拥有的项目数进行调整,因此它的滚动条不应该被使用/永远不会出现。
我的问题是,我希望当用户点击、按住并尝试在父列表视图上的任何位置滚动时,它应该滚动父列表视图。这适用于触摸设备。不幸的是,我需要 PARENT 列表视图的 DataTemplate 是可选的。因此,当使用尝试滚动时,什么也没有发生。
希望我说得有道理。
有什么方法可以触发父列表视图滚动吗?如果我单击 DataTemplate 之间的边界,然后尝试从那里滚动,它会正常工作,但我想要一种触摸友好的体验,能够从任何地方滚动感觉很自然。
下面是一个粗略的代码,我删除了一些不需要的部分:
<ListView DragOver="DragOver"
AllowDrop="True" >
<ListView.ItemTemplate>
<DataTemplate>
<ListView ManipulationMode="None"
SelectionMode="Single"
ScrollViewer.VerticalScrollBarVisibility="Hidden"
CanDragItems="True" Drop="ListViewDrop" DragItemsStarting="DragStarting"
AllowDrop="True" DragOver="DragOver" DragLeave="DragLeave"
>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
谢谢!
找出问题所在。我的 InnerListView 有 ManipulationMode="None"。去掉了就ok了