2012-07-31 84 views
0

我有一个上下文菜单,它具有绑定项目,我想设置一个命令和命令参数,因此我知道哪个项目被点击过,但我不知道如何。如何获取上下文菜单中的选定项目

<MenuItem Command="{Binding Sync}" 
    Header="Synchronize" 
    ItemsSource="{Binding ItemsToSync}"> 
    <MenuItem.Icon> 
     <Image Height="25" Source="Sync.png" /> 
    </MenuItem.Icon> 
</MenuItem> 

回答

3

你可以尝试这样的事情: 在这个例子中,我有一个列表视图,我可以右击并删除选定的项目。我在这里使用RelativeSource的原因是因为当涉及到在菜单项中传递参数时,在这个级别的大部分时间你无法到达页面的datacontext。希望这可以帮助。

   <ListView.ContextMenu> 
        <ContextMenu> 
         <MenuItem Header="Delete" Command="{Binding Path=DeleteDescriptions}" CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=ContextMenu}, Path=PlacementTarget.SelectedItem}" Name="MenuItem1"> 
         </MenuItem> 
        </ContextMenu> 
       </ListView.ContextMenu> 
+0

非常感谢,完美的工作 – AndrewJE 2016-07-26 10:56:40

1

这没有帮助,但我能够创建我自己的解决方案。我不得不为这个命令创建一个静态类。

+0

当你可以自己找到解决方案时总是最好的。为什么你必须为你的命令做一个静态类? – TMan 2012-07-31 15:49:55

+0

虽然不太确定,但我会保持更新,我计划在下一步中摆脱这种情况。 – 2012-07-31 15:54:19

相关问题