C# GridView部分上的ItemClick事件

C# GridView部分上的ItemClick事件,c#,windows-runtime,windows-store-apps,winrt-xaml,C#,Windows Runtime,Windows Store Apps,Winrt Xaml,我有一个要绑定到Xaml的对象集合(目前使用GridView)。我不知道GridView是否是实现目标的最佳工具 这大致是我当前的数据模板: 我需要在Grid1上单击/点击触发器。但是,当我将此模板与GridView一起使用时,ItemClick事件将在完整模板上触发-这当然是正确的。如何在Grid1上设置单击事件?我可以在DataTemplate声明中添加此事件吗 这基本上就是我的GridView的xaml: <GridView x:Name="RoomsGridView"

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

这大致是我当前的数据模板:

我需要在Grid1上单击/点击触发器。但是,当我将此模板与GridView一起使用时,ItemClick事件将在完整模板上触发-这当然是正确的。如何在Grid1上设置单击事件?我可以在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>


编辑:我发现这似乎只适用于按钮

在您上面发布的代码中,您已告知
GridView
通过
IsItemClickEnabled=“True”
捕获项目点击。如果希望能够单击
DataTemplate
中的元素,则不能启用该选项


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

Hi Kasper,我在Datatemplate中向Grid1添加了一个“点击”事件,但是如何在视图模型中访问此事件?编辑:如果您像我一样将事件放在StandardStyles文件中,您似乎无法“轻松”使用Datatemplates中的事件。我现在在页面资源中本地有了datatemplate,所有事件现在都可以正常工作了。关于这个问题的更多信息:我建议您尽可能多地使用命令。这些在视图模型中很容易使用,并且它们不会以任何方式限制数据模板。好的,我将深入研究命令。:)但需要确定的是:是否可以在网格的“点击”事件中使用命令,或者只能在按钮的
Command
属性中使用命令?我只是不清楚如何在点击事件中使用它们。这是不可能的。您可以使用附加属性解决此问题。为网格创建自己的附加属性相当简单。