2013-05-14 80 views
0

我有一個GridView,我希望能夠滑動選擇項目或單擊它們。滑動選擇MVVM中的GridView項目

因爲我想與MVVM一起工作,Click由一個按鈕上的Command來處理,它是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按鈕確認。因此,按鈕上的命令似乎接收所有手勢,並且不允許輕掃選擇該項目。當我

沒有人有同樣的問題或想法如何解決這個問題?

謝謝!

回答

1

我會避免使用GridViewItem中的按鈕,因爲它們有衝突的輸入處理。只需將您的內容放在那裏,而不是放在按鈕中。我使用它的方式是處理ItemClick事件,從事件發送者(可能是GridViewItem)獲取DataContext以獲取項目視圖模型並從事件處理函數中調用該命令。如果你真的不喜歡代碼 - 你可以用你喜歡的搜索引擎查找"gridview itemclick command",你可能會發現一些允許將命令綁定到事件的attached behavior

相關問題