/ / Vinculando a dois DataContexts diferentes em um ContextMenu - wpf, xaml, vinculação de dados, datatemplate

Ligação a dois DataContexts diferentes em um ContextMenu - wpf, xaml, data-binding, datatemplate

Estou tentando vincular a uma propriedade de um contêiner de dentro de um DataTemplate. Uma versão simplificada da minha marcação se parece com:

<Grid>
<Grid.Resources>

<DataTemplate DataType="{x:Type myCustomItem}">

<!--Visual stuff-->

<StackPanel>
<StackPanel.ContextMenu>
<ContextMenu>
<MenuItem Header="Add Item"
Command="{Binding myCustomItemsICommand}"
CommandParameter="{Binding RelativeSource={RelativeSource  Mode=FindAncestor, AncestorType={x:Type CustomContainerType}}, Path=ContainerProperty}"/>
</ContextMenu>
</StackPanel.ContextMenu>
</StackPanel>
</DataTemplate>

</Grid.Resources>

<CustomContainerType/>

</Grid>

Minha abordagem é baseada em esta postagem mas não parece estar funcionando.O problema parece surgir da colocação do ContextMenu dentro da árvore visual. Basicamente, estou tentando vincular o Command ao DataContext do DataTemplate, mas vincular o CommandParameter a um DataContext fora do DataTemplate.

Respostas:

1 para resposta № 1

ContextMenus não estão na mesma árvore visual que o resto dos controles, existem algumas questões sobre como fazer ligações através desse limite, mas isso pode ser um pouco difícil sem especificar nomes.

ElementName falha também devido à falta de conexão da árvore, mas você pode usar x:Reference no Binding.Source em vez de.