【发布时间】:2012-03-05 21:48:40
【问题描述】:
在 Silverlight 5 中,我有一个 DataGrid 和一个 ContextMenuService.ContextMenu。如果单击要选择的行,然后单击鼠标右键,则只需检查 grid.selecteditem 的上下文。但是,如果您右键单击一行而不选择它,则在打开菜单时您没有该行的上下文。 如何获取上下文菜单打开时右键单击的网格的DataContext行? 右键单击网格似乎是一个选项,但它被截获为上下文菜单和除非上下文菜单已经打开/聚焦,否则不会触发。
我找到了大量解决 Silverlight 4 的原始问题并在右键单击时检测行的示例。但是,上下文菜单现在拦截了网格的右击,所以那些没有记录器的工作。我还发现了有关 ContextMenu 初始版本的“错误”的帖子。所有这些帖子/博客都让您很难找到当前的答案或解决方案。
【问题讨论】:
-
... 还没有解决办法。现在,如果 grid.selectedItem 为空,我会提示用户选择一行。此外,在上下文菜单起作用后,我取消选择当前的 grid.selected 项。
标签: silverlight datagrid contextmenu silverlight-5.0