Пользовательское 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."}

Что я делаю не так и как исправить эту проблему?


person Christian    schedule 25.02.2013    source источник


Ответы (3)


<EventTrigger RoutedEvent="shapes:MirrorTile.SelectedLeave">

пространство имен также отсутствовало.

person Christian    schedule 25.02.2013
comment
@McGarnagle: Вы уверены насчет второго двоеточия? Мой VS перестает сообщать мне об ошибке, когда я заменяю его точкой. - person christoph; 07.10.2014

Вы также должны указать тип:

<EventTrigger RoutedEvent="MirrorTile.SelectedEnter"></EventTrigger>

Изменить после комментария:

Пробовали ли вы добавить пространство имен в объявление XAML?

 xmlns:local="clr-namespace:YourNameSpace"

Затем исправьте это:

 <EventTrigger RoutedEvent="local:MirrorTile.SelectedEnter"></EventTrigger>
person l46kok    schedule 25.02.2013
comment
Я пробовал это, но также получаю исключение {"Type reference cannot find type named '{http://schemas.microsoft.com/winfx/2006/xaml/presentation}MirrorTile'."} - person Christian; 25.02.2013

Я думаю, вам не хватает типа, который определяет ваше событие:

<EventTrigger RoutedEvent="MirrorTile.SelectedEnter">
person satnhak    schedule 25.02.2013
comment
Я пробовал это, но также получаю исключение {"Type reference cannot find type named '{http://schemas.microsoft.com/winfx/2006/xaml/presentation}MirrorTile'."} - person Christian; 25.02.2013