Пользовательский RoutedEvent как EventTrigger
У меня есть свой собственный класс формы
public sealed class MirrorTile : Shape
и в этом классе я добавил событие
public static readonly RoutedEvent SelectedEnterEvent = EventManager.RegisterRoutedEvent("SelectedEnter", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MirrorTile));
public event RoutedEventHandler SelectedEnter
{
add
{
this.AddHandler(SelectedEnterEvent, value);
}
remove
{
this.RemoveHandler(SelectedEnterEvent, value);
}
}
и хочу использовать это таким образом
<shapes:MirrorTile>
<shapes:MirrorTile.Triggers>
<EventTrigger RoutedEvent="SelectedEnter">
<BeginStoryboard Storyboard="{StaticResource SelectShape}"/>
</EventTrigger>
</shapes:MirrorTile.Triggers>
</shapes:MirrorTile>
После запуска я получаю исключение:{"RoutedEventConverter cannot convert from System.String."}
Что я делаю не так и как я могу исправить эту проблему?
3 ответа
Решение
<EventTrigger RoutedEvent="shapes:MirrorTile.SelectedLeave">
пространство имен также отсутствовало.
Вы также должны указать тип:
<EventTrigger RoutedEvent="MirrorTile.SelectedEnter"></EventTrigger>
Изменить на комментарий:
Вы пытались добавить пространство имен в декларацию XAML?
xmlns:local="clr-namespace:YourNameSpace"
Затем исправьте это:
<EventTrigger RoutedEvent="local:MirrorTile.SelectedEnter"></EventTrigger>
Я думаю, что вам не хватает типа, который определяет ваше событие:
<EventTrigger RoutedEvent="MirrorTile.SelectedEnter">