一个指令,两个可能的指令目标

本文关键字:指令 目标 一个 两个 | 更新日期: 2023-09-27 17:57:52

以下情况:我有两个ListBox,每个都包含一个单独的可移除元素列表。

如果我现在要添加一个Delete命令(当我将所选元素作为OriginalSource时,它对ContextMenu运行良好),我会遇到这样的问题,即我无法区分哪个ListBox是指哪个ListBox(因为OriginalSource是Window)。

即使为listBoxes触发了GotFocus事件,使用FocusManager也不起作用(总是返回null)。

一个简单的解决方案是将选定的ListBox存储在GotFocus事件中,但我正在寻找一个更通用、可扩展的解决方案(因此我从提供给命令的CanExecute/Execute方法的参数中获得所有信息)

一个指令,两个可能的指令目标

您可以在视图模型上提供LastSelectedItem属性。在设置列表框中的某个SelectedItems时,Allways都会设置此属性。然后在两个列表中搜索该项目并将其删除。