![]() |
1
3
在cmmetadata的click处理程序中,您只需查询lvresources.selectedItem属性,因为可以从click处理程序所在的代码隐藏文件中访问lvresources。它不优雅,但会起作用的。 如果你想更优雅一点,你可以改变设置ContextMenu的位置。例如,您可以尝试如下操作:
它的作用是为ListViewItem插入一个模板,然后可以使用便捷的TemplatedParent快捷方式将ListViewItem分配给菜单项的DataContext。 现在,您的代码隐藏如下:
显然,缺点是您现在需要完成ListViewItem的模板,但我相信您可以很快找到一个适合您需要的模板。 |
![]() |
2
3
类似于Charlie的答案,但不需要更改XAML。
|
![]() |
3
1
所以我决定尝试实现一个命令解决方案。我对它现在的工作情况很满意。 首先,创建了我的命令:
接下来,在自定义ListView控件中,我向构造函数添加了一个新的命令绑定:
此外,还添加了事件处理程序:
我已经使用样式选择器动态地将样式分配给ListView项,因此,我必须在代码隐藏中设置绑定,而不是在XAML中执行此操作。不过,您也可以在XAML中这样做:
我更喜欢这个解决方案的感觉,而不是尝试在鼠标单击时设置一个字段,然后尝试以这种方式访问所单击的内容。 |