GridView上的ItemClick事件

时间:2014-04-15 09:51:46

标签: c# windows-runtime windows-store-apps winrt-xaml

我有一组对象要绑定到我的Xaml(目前使用GridView)。我不知道GridView是否是我想要实现的最佳工具。

这大致是我目前的DataTemplate:

data template

我需要在Grid1上点击/点击触发器。但是当我将此模板与GridView一起使用时,ItemClick事件将在完整模板上触发 - 当然这是正确的。如何在Grid1上设置click事件?我可以在我的DataTemplate声明中添加此事件吗?

这基本上是我的GridView的xaml:

<GridView x:Name="RoomsGridView"
                    VerticalAlignment="Top"
                    ItemsSource="{Binding Rooms}"
                    ItemTemplate="{StaticResource RoomTemplate}"
                    SelectionMode="None"
                    IsSwipeEnabled="false" 
                    IsItemClickEnabled="True"
                    ItemClick="RoomsGridView_ItemClick" Padding="0">
                        <GridView.ItemsPanel>
                            <ItemsPanelTemplate>
                                <StackPanel Orientation="Horizontal"/>
                            </ItemsPanelTemplate>
                        </GridView.ItemsPanel>                            
                    </GridView>

修改:我找到了this sample,但这似乎只适用于按钮!?

1 个答案:

答案 0 :(得分:1)

在上面发布的代码中,您已告诉GridView通过IsItemClickEnabled="True"捕获项目点击次数。如果您希望能够点击DataTemplate内的元素,则无法启用该选项。

我建议你禁用IsItemClickEnabled,而是在Grid1中添加一个点击处理程序。更好的方法是使用具有自定义样式的按钮替换Grid1。这将进一步允许您将按钮绑定到您可以从视图模型控制的命令。