0

我有一个 GridView,我希望能够在其中滑动选择项目或单击它们。

当我想使用 MVVM 时,单击是由按钮上的命令处理的,该按钮是 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 中有按钮,就不会识别滑动。所以按钮上的命令似乎接收所有手势并且不允许滑动选择项目。当我

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

谢谢!

4

1 回答 1

1

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

于 2013-05-14T17:40:07.850 回答