Usando eventos / comandos com o XamlReader

Estou criando dinamicamente meu datatemplate usando XamlReader.Parse (string). O problema que tenho é que não posso colocar nenhum evento em nenhum dos controles criados usando o XamlReader. Depois de fazer algumas pesquisas online, aprendi que essa é uma limitação conhecida do XamlReader.

Eu não sei muito sobre comandos no WPF, mas de alguma forma eu poderia usá-los para obter o mesmo resultado? Se sim, como? Caso contrário, existe alguma maneira de lidar com um evento no meu código por trás de um controle criado usando o Xaml Reader?

Abaixo está um exemplo do datatemplate que eu criei. Eu tenho o manipulador de eventos MenuItem_Click definido no codebehind da janela que hospedará este datatemplate.

Eu recebo o seguinte erro ao tentar executá-lo: System.Windows.Markup.XamlParseException não foi tratado: Falha ao criar um 'Clique' no 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;

questionAnswers(2)

yourAnswerToTheQuestion