В пользовательской FrameworkElement (форма) у меня есть:Что мне не хватает с этим RoutedEvent?
public static readonly RoutedEvent DragDeltaEvent = EventManager.RegisterRoutedEvent("DragDelta", RoutingStrategy.Bubble, typeof(DragDeltaEventHandler), typeof(MyShape));
public event DragDeltaEventHandler DragDelta { add { AddHandler(DragDeltaEvent, value); } remove { RemoveHandler(DragDeltaEvent, value); } }
// xaml DataTemplate:
<local:MyShape DragDelta="MyShape_DragDelta" />
AddHandler
выше не вызывается при создании формы (в DataTemplate).
я никогда не получить событие в коде позади, когда я стрелять в моей форме по:
RaiseEvent(new DragDeltaEventArgs(...);
'AddHandler' не вызывается, потому что WPF будет вызывать его напрямую, а не через оболочку, такую же, как' SetValue'/'GetValue' для' DependencyProperty', но кроме этого он должен работать. По крайней мере, он работает здесь, на моем примере – dkozl
О да, это имеет смысл. Но в моем случае 'RaiseEvent' не доходит до обработчика' MyShape_DragDelta' в коде позади. – Gerard
Итак, где-то внутри 'MyShape' у вас есть' RaiseEvent (новый DragDeltaEventArgs (MyShape.DragDeltaEvent)) ', который, как я предполагаю, вы проверили, выполняется, и' MyShape_DragDelta' не вызывается. – dkozl