Произвольно маршрутизируемое событие не работает!

Мое приложение выглядит так:

1 Window
  2 Frame
    3 Page  
      4 Control

В Control (4) у меня есть пользовательское перенаправленное событие, которое я хочу обработать Frame (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".

1 ответ

Решение

Смотрите OwnerType из PreviewArtistLinkClickedEvent, Это Гиперссылка в вашем случае, насколько я понимаю из вашего кода, OwnerType в этом случае должен быть TrackList поэтому ваш код будет выглядеть так:

public static readonly RoutedEvent PreviewArtistLinkClickedEvent = EventManager.RegisterRoutedEvent(
     "PreviewArtistLinkClicked", RoutingStrategy.Tunnel, typeof(RoutedEventHandler), typeof(TrackList));

Надеюсь это поможет!!

Другие вопросы по тегам