在我的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
也应该有效 - 但它不起作用。
问题:如何将事件从一个控件传递到另一个控件,这是在虚拟树中的同一级别?
注意:代码 - 这只是解释我需要的样本。
答案 0 :(得分:0)
是否有必要将事件从一个传递到另一个?
如果第二个控件只是想听听该事件是否已被处理,那么将此代码添加到您的第二个网格的OnLoaded后面的代码中。
Grid1.AddHandler(TappedEvent, new TappedEventHandler((s, args) =>
{
//respond to tapped event
}), true);
第三个参数表示事件处理程序将响应Handled事件以及未处理的事件。