Пользовательский 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">
Другие вопросы по тегам