Cảm ơn giải pháp. Đối với những XAML rõ ràng muốn này có thể giúp:
<Window.Resources>
<BooleanToVisibilityConverter x:Key="booleanToVisibilityConverter" />
</Window.Resources>
<ContextMenu x:Key="innerResultsContextMenu">
<MenuItem Header="Open"
Command="{x:Static local:Commands.AccountOpened}"
CommandParameter="{Binding Path=PlacementTarget.DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContextMenu}}}"
CommandTarget="{Binding Path=PlacementTarget, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContextMenu}}}"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource booleanToVisibilityConverter}}"
/>
</ContextMenu>
Trong trường hợp của tôi, menu ngữ cảnh là một nguồn lực, do đó bắt buộc đối với khả năng hiển thị phải sử dụng các thiết lập RelativeSource tự ràng buộc.
Là một bên, đối với CommandParameter, bạn cũng có thể chuyển DataContext của mục được bấm để mở menu ngữ cảnh. Và để định tuyến các ràng buộc lệnh đến cửa sổ cha, bạn sẽ cần phải đặt CommandTarget tương ứng.
Ohhhh - thật đơn giản! Tuyệt vời lừa! – sergtk