Wpf 自定义路由事件失败!
我的应用程序如下所示:Wpf 自定义路由事件失败!,wpf,routedevent,Wpf,Routedevent,我的应用程序如下所示: 1 Window 2 Frame 3 Page 4 Control public static readonly RoutedEvent PreviewArtistLinkClickedEvent = EventManager.RegisterRoutedEvent( "PreviewArtistLinkClicked", RoutingStrategy.Tunnel, typeof(RoutedEventHandler), typ
1 Window
2 Frame
3 Page
4 Control
public static readonly RoutedEvent PreviewArtistLinkClickedEvent = EventManager.RegisterRoutedEvent(
"PreviewArtistLinkClicked", RoutingStrategy.Tunnel, typeof(RoutedEventHandler), typeof(TrackList));
在控件4中,我有一个自定义路由事件,我希望帧2处理该事件
活动:
public static readonly RoutedEvent PreviewArtistLinkClickedEvent = EventManager.RegisterRoutedEvent(
"PreviewArtistLinkClicked", RoutingStrategy.Tunnel, typeof(RoutedEventHandler), typeof(Hyperlink));
public event RoutedEventHandler PreviewAlbumLinkClicked {
add { AddHandler(PreviewAlbumLinkClickedEvent, value); }
remove { RemoveHandler(PreviewAlbumLinkClickedEvent, value); }
}
void RaisePreviewArtistLinkClickedEvent(object sender, RoutedEventArgs e) {
RoutedEventArgs eventArgs = new RoutedEventArgs(Tracklist.PreviewArtistLinkClickedEvent);
RaiseEvent(eventArgs);
}
以及框架XAML:
<Frame Name="frameContent" Grid.Column="1" Background="#373737" NavigationUIVisibility="Hidden"
gui:Tracklist.PreviewArtistLinkClicked="frameContent_PreviewArtistLinkClicked"/>
编译很好,但会发生以下情况:
找不到名为“PreviewArtistLinkClicked”的属性的DependencyProperty或PropertyInfo
查看PreviewIstLinkClickedEvent的所有者类型,在您的案例中它是超链接,据我从您的代码中了解,在这种情况下,所有者类型应该是TrackList
因此,您的代码将如下所示:
1 Window
2 Frame
3 Page
4 Control
public static readonly RoutedEvent PreviewArtistLinkClickedEvent = EventManager.RegisterRoutedEvent(
"PreviewArtistLinkClicked", RoutingStrategy.Tunnel, typeof(RoutedEventHandler), typeof(TrackList));
希望这有帮助