首页 文章

GridView上的ItemClick事件

提问于
浏览
0

我有一组对象,我想绑定到我的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>

Edit :我发现this sample但这似乎只适用于按钮!?

1 回答

  • 1

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

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

相关问题