Uso de eventos / comandos con XamlReader

Estoy construyendo dinámicamente mi plantilla de datos usando XamlReader.Parse (string). El problema que tengo es que no puedo poner ningún evento en ninguno de los controles que creo usando XamlReader. Después de investigar un poco en línea, he aprendido que esta es una limitación conocida de XamlReader.

No sé mucho sobre comandos en WPF, pero ¿podría usarlos de alguna manera para obtener el mismo resultado? ¿Si es así, cómo? Si no, ¿hay alguna forma en que pueda manejar un evento en mi código detrás de un control creado usando Xaml Reader?

A continuación se muestra un ejemplo de la plantilla de datos que creo. Tengo el controlador de eventos MenuItem_Click definido en el código detrás de la ventana que alojará esta plantilla de datos.

Recibo el siguiente error cuando intento ejecutarlo: System.Windows.Markup.XamlParseException no se manejó: no se pudo crear un 'Clic' del texto 'MenuItem_Click'.

DataTemplate result = null;
        StringBuilder sb = new StringBuilder();

        sb.Append(@"<DataTemplate 
                        xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'
                        xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'>
                            <Grid Width=""Auto"" Height=""Auto"">

                            <TextBlock Text=""Hello"">
                                <TextBlock.ContextMenu>
                                    <ContextMenu>
                                         <MenuItem 
                                          Header=""World""
                                          Click=""MenuItem_Click""></MenuItem>
                                    </ContextMenu>
                                </TextBlock.ContextMenu>
                            </TextBlock>

                            </Grid>
                      </DataTemplate>");

        result = XamlReader.Parse(sb.ToString()) as DataTemplate;

Respuestas a la pregunta(2)

Su respuesta a la pregunta