[英]MenuItem under ContextMenu is not getting binded to ViewModel
我有兩個MenuItem,它們作為一個菜單項的上下文菜單的一部分放置。 我可以綁定父菜單項的DataContext,但是以某種方式無法將子MenuItems與父MenuItem的DataCOntext綁定。 以下是代碼段。
<MenuItem Name="miCommunityHealthIssues" Margin="3,3,3,6" Click="miCommunityHealthIssues_Click" DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" Style="{StaticResource ShowMenuItemFilterStyle}">
<MenuItem.ContextMenu>
<ContextMenu DataContext="{Binding RelativeSource={RelativeSource Self}, Path=PlacementTarget.DataContext}">
<MenuItem Name="miShowComhealthIssues" IsCheckable="True" IsChecked="{Binding IncludeCommunityRecords}" Checked="MenuItem_Checked" Unchecked="MenuItem_Unchecked"/>
<MenuItem Name="miShowSupComhealthIssues" IsCheckable="True" IsChecked="{Binding IncludeSuppressedCommunityRecords}" Checked="miShowSupComhealthIssues_Checked" Unchecked="miShowSupComhealthIssues_Unchecked"/>
</ContextMenu>
</MenuItem.ContextMenu>
</MenuItem>
請幫助我提供代碼片段,而不是引導我轉到其他鏈接。 我已經提到了很多鏈接,但無法聯系到該解決方案。
我懷疑問題的一部分在ContextMenu
的DataContext
中。 當我嘗試重新創建代碼時,無法在綁定中指定Path=PlacementTarget.DataContext
。
如果您只是嘗試引用父MenuItem
的DataContext
,建議不要定義ContextMenu
的DataContext
。 父MenuItem
的DataContext
將應用於所有子元素,包括子MenuItem
:
<MenuItem Name="miCommunityHealthIssues" Margin="3,3,3,6" Click="miCommunityHealthIssues_Click" DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" Style="{StaticResource ShowMenuItemFilterStyle}">
<MenuItem.ContextMenu>
<!-- no datacontext definition necessary -->
<ContextMenu>
<MenuItem Name="miShowComhealthIssues" IsCheckable="True" IsChecked="{Binding IncludeCommunityRecords}" Checked="MenuItem_Checked" Unchecked="MenuItem_Unchecked"/>
<MenuItem Name="miShowSupComhealthIssues" IsCheckable="True" IsChecked="{Binding IncludeSuppressedCommunityRecords}" Checked="miShowSupComhealthIssues_Checked" Unchecked="miShowSupComhealthIssues_Unchecked"/>
</ContextMenu>
</MenuItem.ContextMenu>
</MenuItem>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.