This codeproject article covers using a new RoutedEvent
with a different argument type than just RoutedEventArgs
(rather far down, search for "Second using custom RoutedEventArgs"), though I wish WPF included a version of RoutedEventHandler
like the CLR's EventHandler<T> where T : EventArgs
so you didn't have to declare a new delegate every time.
The summary:
- Create a new type that subtypes RoutedEventArgs and has properties for your data.
- Make sure your RoutedEventArgs subtype implements the non-default constructors of RoutedEventArgs as those are needed for it to work.
- Declare a new delegate that matches this subtype.
- Use as you would any other custom event in your code (also covered in that link).