我有一个GridView,我希望能够滑动选择项目或点击它们。
由于我想使用MVVM,Click由Button上的Command处理,Button是GridView中任何项目的根。
以下是一个简单的例子:
<GridView
ItemsSource="{Binding Source={StaticResource GroupedItemsViewSource}}"
IsSwipeEnabled="True"
Padding="116,0,40,46">
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.ItemTemplate>
<DataTemplate>
<Button Command="{Binding ClickedCommand}" />
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
我的问题是,只要我在ItemTemplate中有Button,就不会识别滑动。因此按钮上的命令似乎接收所有手势,并且不允许滑动选择项目。当我
没有人有同样的问题或想法如何解决这个问题?
谢谢!
答案 0 :(得分:1)
我会避免使用GridViewItem
中的按钮,因为它们的输入处理方式存在冲突。只需将您的内容放在那里而不是按钮中。我使用它的方式是处理ItemClick
事件,从事件发送者(可能是DataContext
)获取GridViewItem
以获取项目视图模型并从事件中调用命令处理程序。如果您真的不喜欢代码 - 您可以使用自己喜欢的搜索引擎查找"gridview itemclick command",并且可能会发现一些允许将命令绑定到事件的attached behavior。