如何在GridView中检测单击

时间:2017-12-27 15:11:12

标签: c# uwp

我有一个GridView,在这个Gridview中有几个包含其他元素的网格。如果我点击我的GridView的一个元素(一个网格),我想打开关于这个元素的细节,但Grid和GridView似乎不支持设置一个click方法。在单击元素时,我还可以做什么来调用方法?

3 个答案:

答案 0 :(得分:1)

  

但Grid和GridView似乎不支持设置点击方法

使用Tapped事件。

答案 1 :(得分:0)

你可以添加一个不可见的矩形或其他元素来注册OnMouseOver事件或点击ect。

答案 2 :(得分:0)

您的每个Grid都应订阅3个活动并具有透明背景:

 <Grid Background="Transparent" PointerPressed="Grid_OnPointerPressed" PointerReleased="Grid_OnPointerReleased" PointerExited="Grid_OnPointerExited">

在代码中你可以像这样模拟点击事件:

    private bool _isPressed;

    private void Grid_OnPointerPressed(object sender, PointerRoutedEventArgs e)
    {
        _isPressed = true;
    }

    private void Grid_OnPointerReleased(object sender, PointerRoutedEventArgs e)
    {
        if (_isPressed)
        {
            //your logic on click event
        }

        _isPressed = false;
    }

    private void Grid_OnPointerExited(object sender, PointerRoutedEventArgs e)
    {
        _isPressed = false;
    }

或最简单的方法是将Grid包裹到Button