问题
I have my own shape class
public sealed class MirrorTile : Shape
and in this class I added the event
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);
}
}
and want to use it in this way
<shapes:MirrorTile>
<shapes:MirrorTile.Triggers>
<EventTrigger RoutedEvent="SelectedEnter">
<BeginStoryboard Storyboard="{StaticResource SelectShape}"/>
</EventTrigger>
</shapes:MirrorTile.Triggers>
</shapes:MirrorTile>
After starup I get the exception:
{"RoutedEventConverter cannot convert from System.String."}
What I'm doing wrong and how can I fix this problem?
回答1:
<EventTrigger RoutedEvent="shapes:MirrorTile.SelectedLeave">
the namespace was missing also.
回答2:
You have to provide the type as well:
<EventTrigger RoutedEvent="MirrorTile.SelectedEnter"></EventTrigger>
Edit upon comment:
Have you tried adding a namespace to your XAML declaration?
xmlns:local="clr-namespace:YourNameSpace"
Then fix this to:
<EventTrigger RoutedEvent="local:MirrorTile.SelectedEnter"></EventTrigger>
回答3:
I think you are missing the type that defines your event:
<EventTrigger RoutedEvent="MirrorTile.SelectedEnter">
来源:https://stackoverflow.com/questions/15068471/custom-routedevent-as-eventtrigger