2015-09-01 5 views
1

У меня есть два элемента MenuItems, которые я разместил как часть контекстного меню одного пункта меню. Я могу связать DataContext с родительским пунктом меню, но каким-то образом я не могу связать дочерние элементы MenuItems с DataCOntext родительского MenuItem. Ниже приведен фрагмент кода.MenuItem под ContextMenu не привязывается к ViewModel

<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> 

Пожалуйста, помогите мне с фрагментом кода, а не направляйте меня на другие ссылки. Я уже упоминал много ссылок и не смог дотянуться до решения.

ответ

0

Я подозреваю, что часть выпуска находится в DataContextContextMenu. Когда я пытаюсь воссоздать ваш код, я не могу указать Path=PlacementTarget.DataContext в привязке.

Если вы просто пытаетесь ссылаться на родительский MenuItem «s DataContext, я предлагаю не Определяя DataContext из ContextMenu. Родитель MenuItem «s 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> 
+0

Боюсь, ваше решение не работает. Спасибо, что посмотрели на это. Есть что-то очень незначительное, что я пропускаю, что мешает мне достичь решения. Вы тестировали этот код? Если он работает в вашей среде, то мне интересно, что в моем случае не работает. Пожалуйста, дайте мне знать, если у вас есть что поделиться. –