C# 用户控制的Telerik覆盖流冒泡事件
我有一个telrik coverflow,其中的平铺类型为InfoPageView,一个用户控件。InfoPageView用户控件中有一个按钮,我希望从中在父级触发事件。 我在这篇文章中尝试了实现该解决方案: 但是我不能在家长课上看到孩子们的活动。有没有其他方法可以做到这一点C# 用户控制的Telerik覆盖流冒泡事件,c#,silverlight,mvvm,telerik,coverflow,C#,Silverlight,Mvvm,Telerik,Coverflow,我有一个telrik coverflow,其中的平铺类型为InfoPageView,一个用户控件。InfoPageView用户控件中有一个按钮,我希望从中在父级触发事件。 我在这篇文章中尝试了实现该解决方案: 但是我不能在家长课上看到孩子们的活动。有没有其他方法可以做到这一点 <telerikNavigation:RadCoverFlow x:Name="CoverFlow" Grid.Row="0" OffsetY="0" ItemsSource="{Binding Covers}" H
<telerikNavigation:RadCoverFlow x:Name="CoverFlow" Grid.Row="0" OffsetY="0" ItemsSource="{Binding Covers}" HorizontalAlignment="Center"
DistanceBetweenItems="75" DistanceFromSelectedItem="25" IsReflectionEnabled="False" ItemScale="0.5" Margin="0,0,0,0" Width="785" Height="486">
<telerikNavigation:RadCoverFlow.ItemTemplate>
<DataTemplate>
<local:InfoPageView Name="Custinfopage" Width="390" Height="390" />
</DataTemplate>
</telerikNavigation:RadCoverFlow.ItemTemplate>
</telerikNavigation:RadCoverFlow>
如果您坚持让事件从您的内部视图中冒泡出来,您将需要依赖路由事件。该按钮会将LeftMouseButtonDown事件标记为已处理,这意味着您不能只使用直接的事件处理程序。不过,您可以做的是为已处理的事件设置一个侦听器 您需要验证事件是否源自所需的按钮,也许在该按钮上使用标记就足够了
public MyOuterPage()
{
InitializeComponent();
this.AddHandler(UIElement.MouseLeftButtonDownEvent, new System.Windows.Input.MouseButtonEventHandler(MyMouseLeftButtonDownEventHandler), true);
}
void MyMouseLeftButtonDownEventHandler(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
var button = e.OriginalSource as Button;
if (button.Tag == "MyButton")
{
// do something with the event here
}
}
我无法通过codebehind.cs文件捕获主页上的InfoPage usercontrol。所以我在xaml中注入了事件:
<local:InfoPageView Name="Custinfopage" Width="390" Height="390" OnButtonClick="Button_click_event" />
在UserControl中:
public event EventHandler<RoutedEventArgs> OnButtonClick;
public void Button_Click(object sender, RoutedEventArgs e)
{
if (OnButtonClick!= null){
OnButtonClick(sender, e);
}
}
公共事件事件处理程序OnButton单击;
公共作废按钮\单击(对象发送者,路由目标e)
{
如果(OnButtonClick!=null){
OnButtonClick(发送方,e);
}
}
您所说的“父级”是什么意思您想在RadCoverFlow控件中“触发事件”,还是在InfoPageView中?您的最终目标是什么?我想在RadCoverflow控件/或承载RadCoverflow[parent]的视图中捕获一个事件,问题是它是由InfoPageView中的一个按钮生成的。
public event EventHandler<RoutedEventArgs> OnButtonClick;
public void Button_Click(object sender, RoutedEventArgs e)
{
if (OnButtonClick!= null){
OnButtonClick(sender, e);
}
}