A meno che manchi qualcosa, non sembra che tu stia descrivendo un evento indirizzato. Gli eventi instradati fanno parte della tecnologia WPF e sono descritti qui .
Un evento indirizzato funziona dove hai una gerarchia di oggetti in una struttura ad albero, proprio come faresti con una pagina WPF. Ogni controllo è un nodo nell'albero di visualizzazione, con il nodo radice che è la finestra o la finestra di dialogo che descrive il file XAML. La sfida con questa struttura è che è difficile ottenere ed estendere il riferimento del pulsante che si desidera con il gestore di clic per esso. Per impostazione predefinita, i controlli WPF gestiscono ancora gli eventi mouse e tastiera, ma se non ci sono gestori registrati sull'oggetto stesso, passerà l'evento nella gerarchia fino a quando qualcosa lo maneggia.
Il "RoutedEvent" ha un riferimento all'oggetto sorgente e le regole per la navigazione dell'albero di visualizzazione. Sono le opzioni "Bubbling", "Direct" o "Tunneling" descritte nell'articolo a cui mi sono collegato. Ogni componente sa di voler fare quando riceve un evento indirizzato con quella regola ad esso associata.
Questo è un po 'diverso dal dichiarare un evento su una classe che hai creato e quindi richiamarlo quando necessario. Essenzialmente, con questo approccio, l'unico modello di eventi disponibile è "Direct". Il completamento automatico eseguito in Visual Studio genera semplicemente il gestore per te. La struttura WPF gestisce il routing per te, quindi ci sono pochi hai a cui pensare nella maggior parte dei casi. È solo quando vuoi personalizzare il modo in cui gli eventi si comportano all'interno dello schermo che devi veramente preoccuparti delle complessità degli eventi indirizzati.