从两个列表框中左右移动项目

Moving items left and right from two listboxes

我有一个带有 2 个列表框的 Gui,如下所示:

这应该是一个安装程序,用户从左侧选择程序并将它们移动到右侧并 select 安装,然后将安装右侧的所有程序。 我对按钮功能从左到右和从右到左移动有问题。当我这样做时:

Function MoveRight (){
       $x = $listbox1.selecteditems
       @($x) | ForEach-Object {[void] $Listbox2.Items.Add($_)}}

我把项目放到了右边,但是当用户再次按下那个按钮时,我看到那里有重复项。 我正在努力解决如何让它测试左侧的 selected 项是否已存在于右侧,如果存在则忽略它。

我无法检查 listbox1.selecteditem 是否等于 listbox2.selecteditem,因为用户不应该检查 listbox2 中的项目(除非他想删除它们)。

知道我该怎么做吗?

在右侧列表框中添加元素之前使用 .Items.Clear() 方法:

Function MoveRight (){
       $listbox2.Items.Clear()
       $x = $listbox1.selecteditems
       @($x) | ForEach-Object {[void] $Listbox2.Items.Add($_)}}