是否同时选择并删除ListBox和Collection中的多个项目



我正在使用xaml和wpf。我有一个待办事项列表,它位于由集合填充的列表框中。我目前可以一次删除列表中的一个项目。我该如何编辑它才能一次选择和删除多个?

U可以使用SelectedItems ListBox属性并将其作为命令参数传递。然后在ViewModel中,您将能够获取每个选定的项目。

记住设置

SelectionMode="Extended" //or Multiple

在您的ListBox中。

示例

这是我绑定到命令的按钮:

<Button Content="⇅"
ToolTip="Use ctr+click or shift+click to select more than one item"
Command="{Binding SwapVerticallyCommand}"
CommandParameter="{Binding ElementName=RightListBox, Path=SelectedItems}" />

如您所见,我将SelectedItems作为命令参数传递。然后在VM中执行此方法(类似于RemoveTodoItem(:

private void SwapVertically(IList obj)
{
if ( obj[0] is Slot first && obj[1] is Slot second )
{
(first.Target, second.Target) = (second.Target, first.Target); //swap places
}
}

IList作为参数传递,您可以从中获取值。因此,如果您的命令获得obj,则将其强制转换为IList,但更好的解决方案是定义从视图传递给命令的对象类型-使用IList而不是对象。

相关内容

  • 没有找到相关文章

最新更新