在MVVM中的GridView项上滑动选择

时间:2013-05-14 15:57:25

标签: xaml windows-runtime winrt-xaml

我有一个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,就不会识别滑动。因此按钮上的命令似乎接收所有手势,并且不允许滑动选择项目。当我

没有人有同样的问题或想法如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

我会避免使用GridViewItem中的按钮,因为它们的输入处理方式存在冲突。只需将您的内容放在那里而不是按钮中。我使用它的方式是处理ItemClick事件,从事件发送者(可能是DataContext)获取GridViewItem以获取项目视图模型并从事件中调用命令处理程序。如果您真的不喜欢代码 - 您可以使用自己喜欢的搜索引擎查找"gridview itemclick command",并且可能会发现一些允许将命令绑定到事件的attached behavior