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;