【问题标题】:Swipe-select on a GridView Item in MVVM在 MVVM 中的 GridView 项目上滑动选择
【发布时间】:2013-05-14 15:57:24
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: xaml windows-runtime winrt-xaml


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-19
      • 1970-01-01
      • 2014-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      相关资源
      最近更新 更多