سؤال

يبدو طلبي هكذا:

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));

أتمنى أن يساعدك هذا!!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top