私はこのようなxamlを持っています
<Grid>
<Grid.DataContext>
<bin:ItemsCollViewModel/>
</Grid.DataContext>
<controls:Pivot ItemsSource="{Binding Items}">
<controls:Pivot.HeaderTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding ItemName}" />
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu >
<toolkit:ContextMenu.Items>
<toolkit:MenuItem Header="Remove" />
</toolkit:ContextMenu.Items>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</Grid>
</DataTemplate>
</controls:Pivot.HeaderTemplate>
<controls:Pivot.ItemTemplate>
....
</controls:Pivot.ItemTemplate>
</controls:Pivot>
コンテキスト メニュー項目のコマンド プロパティをビューモデル ( ItemsCollViewModel )の ICommand プロパティ (TryRemove と言う) にバインドする必要があります。このTryRemoveはItemsCollViewModelに属していますが、その親 (ピボット) の DataContext はItemsCollViewModelのプロパティであるItemsです。では、このコンテキスト メニュー項目のコマンド プロパティをその親 (ピボット) の親 (グリッド) のプロパティにバインドするにはどうすればよいでしょうか。
要するに、コントロールの親の親のデータコンテキストにアクセスするにはどうすればよいですか。ボタンの DataContext を親の親 DataContext に変更する方法は? しかし、コンパイラはAncestorType={x:Type Grid}を見つけることができません