UWP ListView Selected Items 只是 returns 一些项目

UWP ListView Selected Items just returns some items

我正在做一个 UWP 应用程序,我正在使用 ListView 来显示项目列表。我为此使用 ObservableCollectionListView 使用多选模式,但当我检查哪些项目已被选中时,它只是 returns 所选项目的一半。这是我的

代码

XAML 文件

<Grid>
        <StackPanel>
            <TextBlock Text="{x:Bind Travel.Name}" VerticalAlignment="Top" Height="45" Width="145" FontSize="30"  HorizontalAlignment="Left"  Margin="20,0,0,10" />
            <TextBlock Text="Select the items you want to add to the travel:" FontSize="15"  HorizontalAlignment="Left"  Margin="20,0,0,10"/>
            <ListView x:Name="ItemsList" Margin="20, 10, 20, 20" IsItemClickEnabled="True" x:DefaultBindMode="OneWay" SelectionMode="Multiple">
                <ListView.ItemTemplate>
                    <DataTemplate x:DataType="data:Item">
                        <StackPanel Orientation="Horizontal">
                            <TextBlock  VerticalAlignment="Center" Width="100" FontSize="15" Text="{x:Bind Name}" Margin="0,0,30,0" ></TextBlock>
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
            <Button x:Name="AddItems" Content="Add Items" HorizontalAlignment="Left" Click="AddItems_Click" Margin="20, 10, 0, 0"/>
        </StackPanel>
    </Grid>

后面的代码:

public ObservableCollection<Item> ItemsOfTravel { get; set; } = new ObservableCollection<Item>();

private void AddItems_Click(object sender, RoutedEventArgs e)
        {
            foreach(var item in ItemsList.SelectedItems)
            {
                ItemsOfTravel.Remove((Item)item);
            }
        }

我需要像这样从所选项目中获取一个数组:

private void AddItems_Click(object sender, RoutedEventArgs e)
        {            

            foreach(Item item in ItemsList.SelectedItems.ToArray())
            {                
                ItemsOfTravel.Remove(item);
            }            
        }

每次我从 Observable 集合中删除一个项目时,所选项目的结果似乎都会发生变化,这就是它没有遍历所有项目的原因