سؤال
يبدو طلبي هكذا:
1 Window
2 Frame
3 Page
4 Control
في التحكم (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"/>
يجمع بشكل جيد ولكن هذا يحدث:
لا يمكن العثور على DependencyProperty أو PropertyInfo للممتلكات المسماة "PreviewArtiStLinkClicked".
المحلول
انظر ownertype من PreviewArtistLinkClickedEvent
, ، إنه ارتباط تشعبي في حالتك ، بقدر ما أحصل من الكود الخاص بك ، يجب أن يكون المالك في هذه الحالة TrackList
لذلك سيبدو الرمز الخاص بك هكذا:
public static readonly RoutedEvent PreviewArtistLinkClickedEvent = EventManager.RegisterRoutedEvent(
"PreviewArtistLinkClicked", RoutingStrategy.Tunnel, typeof(RoutedEventHandler), typeof(TrackList));
أتمنى أن يساعدك هذا!!
لا تنتمي إلى StackOverflow