将ui(tapped)事件通过控制传递给另一个

时间:2014-06-05 06:41:35

标签: c# xaml windows-store-apps

在我的Windows应用商店应用程序(c#,xaml)中,我需要通过一个控件将一个ui事件传递给另一个控件。我的xaml看起来像:

 <Grid x:Name="FirstGrid" Width="100" Height="100" Tapped="FirstGrid_OnTapped" Background="Black"/>
 <Grid x:Name="SecondGrid" Width="100" Height="100" Tapped="SecondGrid_OnTapped" Background="Black"/>

这是两个相同的网格,一对一。

我的c#代码如下:

    private void FirstGrid_OnTapped(object sender, TappedRoutedEventArgs e)
    {
        Debug.WriteLine("FirstGrid_OnTapped");
    }

    private void SecondGrid_OnTapped(object sender, TappedRoutedEventArgs e)
    {
        Debug.WriteLine("SecondGrid_OnTapped");
        e.Handled = false;
    }

当我点击此网格时,SecondGrid_OnTapped方法有效,我希望e.Handled = false;行告诉系统:“在虚拟树上传递事件”而FirstGrid_OnTapped也应该有效 - 但它不起作用。

问题:如何将事件从一个控件传递到另一个控件,这是在虚拟树中的同一级别?

注意:代码 - 这只是解释我需要的样本。

1 个答案:

答案 0 :(得分:0)

是否有必要将事件从一个传递到另一个?

如果第二个控件只是想听听该事件是否已被处理,那么将此代码添加到您的第二个网格的OnLoaded后面的代码中。

Grid1.AddHandler(TappedEvent, new TappedEventHandler((s, args) =>
        {
            //respond to tapped event 
        }), true);

第三个参数表示事件处理程序将响应Handled事件以及未处理的事件。