Home Contact

Timmy Kokke

…just sorting my bubbles…

News




Timmy Kokke's Blog

↑ Grab this Headline Animator

Timmy Kokke at Blogged

Twitter












Tag Cloud


Archives

Post Categories

Image Galleries

Silverlight

Syndication:

Monitoring routed events in WPF

A few days ago I wanted to monitor all routed events fired in my application. Because I am running an XBAP application inside a browser windows, Snoop wasn’t very helpful (it usually is). Because all routed events are basically the same, you can handle them all with one singe event handler. Using the EventManger it is possible to get all routed events and register a class handler for every one of them.

The code below is a stripped down version of the code I’ve got implemented. When loaded, it gets all events. Than it loops to them and assigns a handler to them. It writes every event that is caught to the console. If you are using commands, you may way to filter them out, because very often the CanExecute and PreviewCanExecute events are raised on every command registered.

 

 

public partial class myUserControl: UserControl
{
 
  public  myUserControl()
  {
    InitializeComponent();
    Loaded += myUserControlLoaded
  }
  
  void myUserControlLoaded(object sender, RoutedEventArgs e)
  {
    var events = EventManager.GetRoutedEvents();
    foreach (var routedEvent in events)
    {
      EventManager.RegisterClassHandler(typeof(myUserControl),
                          routedEvent, new RoutedEventHandler(handler));
    }
  }
 
  internal static void handler(object sender, RoutedEventArgs e)
  {
    Console.WriteLine(e.OriginalSource + "=>" + e.RoutedEvent);
  }
}

Shout it
Tags van Technorati: ,
dotNed blogger
kick it on DotNetKicks.com

 

 

Feedback

No comments posted yet.


Post A Comment
Title:
Name:
Email:
Website:
Comment:
Verification: