【发布时间】:2014-05-23 21:41:03
【问题描述】:
以下情况:我有 2 个 ListBox,每个都包含一个单独的可移除元素列表。
如果我现在要添加一个删除命令(当我将所选元素作为 OriginalSource 时,这对 ContextMenu 工作正常),我遇到的问题是我无法区分哪个 ListBox 是指(因为 OriginalSource 是窗口)。
即使为 listBoxes 触发了 GotFocus 事件,使用 FocusManager 也不起作用(始终返回 null)。
一个简单的解决方案是将选定的 ListBox 存储在 GotFocus 事件中,但我正在寻找一个更通用、可扩展的解决方案(因此我从提供给命令的 CanExecute/Execute 方法的参数中获取所有信息)
【问题讨论】:
-
默认情况下
CommandTarget将成为焦点元素,然后它会沿着可视化树向上查找一些CommandBinding。你的每个Listbox可以有不同的CommandBinding -
您可以做的是为每个列表框创建两个按钮。然后使用
CommandParameter可以区分是哪个列表框发送了删除Command。