У меня есть следующее перенаправленное событие:
public static readonly RoutedEvent ItemMouseDownEvent = EventManager.RegisterRoutedEvent(
"ItemMouseDown", RoutingStrategy.Bubble, typeof(ItemMouseDownEventHandler), typeof(BindableGrid));
public delegate void ItemMouseDownEventHandler(object sender, ItemMouseDownEventArgs e);
public class ItemMouseDownEventArgs : RoutedEventArgs
{
public object Item { get; set; }
}
public event ItemMouseDownEventHandler ItemMouseDown
{
add { AddHandler(ItemMouseDownEvent, value); }
remove { RemoveHandler(ItemMouseDownEvent, value); }
}
И я запускаю его так (этот код вызывается, я установил точку останова):
var args = new ItemMouseDownEventArgs
{
Item = ((FrameworkElement)sender).DataContext,
RoutedEvent = ItemMouseDownEvent
};
RaiseEvent(args);
Iиметь страницу XAML, использующую событие:
<local:BindableGrid x:Name="starSystemMap" ArraySource="{Binding SpaceObjectArray}" CellSize="64" BackgroundImage="/Images/Starfield.png" ItemMouseDown="starSystemMap_ItemMouseDown">
...
</local:BindableGrid>
и обработчик события (WIP):
private void starSystemMap_ItemMouseDown(object sender, BindableGrid.ItemMouseDownEventArgs e)
{
switch (e.Item)
{
case null:
MessageBox.Show("Space... the final frontier... is very, very empty...");
break;
}
}
Теперь, даже если событие вызывается, обработчик события никогда не вызывается -почему это?Как я могу получить обработчик события для моего настраиваемого перенаправленного события?