C# ContextMenu下的MenuItem未绑定到ViewModel
我有两个菜单项,作为一个菜单项上下文菜单的一部分。我可以绑定父菜单项的DataContext,但不知何故,我无法将子菜单项与父菜单项的DataContext绑定。下面是代码片段C# ContextMenu下的MenuItem未绑定到ViewModel,c#,wpf,C#,Wpf,我有两个菜单项,作为一个菜单项上下文菜单的一部分。我可以绑定父菜单项的DataContext,但不知何故,我无法将子菜单项与父菜单项的DataContext绑定。下面是代码片段 <MenuItem Name="miCommunityHealthIssues" Margin="3,3,3,6" Click="miCommunityHealthIssues_Click" DataContext="{Binding RelativeSource={RelativeSource Mode=
<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>
请帮助我的代码片段,而不是指导我到另一个链接。我已经参考了很多链接,无法找到解决方案 我怀疑问题的一部分在
上下文菜单的数据上下文中。尝试重新创建代码时,无法在绑定中指定Path=PlacementTarget.DataContext
如果您只是试图引用父级MenuItem
的DataContext
,我建议不要定义ContextMenu
的DataContext
。父MenuItem
的DataContext
将应用于所有子元素,包括子MenuItem
s:
<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>
我怀疑问题的一部分在上下文菜单的数据上下文中。尝试重新创建代码时,无法在绑定中指定Path=PlacementTarget.DataContext
如果您只是试图引用父级MenuItem
的DataContext
,我建议不要定义ContextMenu
的DataContext
。父MenuItem
的DataContext
将应用于所有子元素,包括子MenuItem
s:
<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>
恐怕您的解决方案不起作用。谢谢你调查这件事。我遗漏了一件非常微小的事情,这阻碍了我找到解决方案。你测试过这个代码吗?如果它在你的环境中工作,那么我想知道我的失败是什么。如果您还有什么要分享的,请告诉我。恐怕您的解决方案不起作用。谢谢你调查这件事。我遗漏了一件非常微小的事情,这阻碍了我找到解决方案。你测试过这个代码吗?如果它在你的环境中工作,那么我想知道我的失败是什么。如果你还有什么要分享的,请告诉我。