Произвольно маршрутизируемое событие не работает!
Мое приложение выглядит так:
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));
Надеюсь это поможет!!