UWP ListView Selected Items 只是 returns 一些项目
UWP ListView Selected Items just returns some items
我正在做一个 UWP 应用程序,我正在使用 ListView
来显示项目列表。我为此使用 ObservableCollection
。 ListView
使用多选模式,但当我检查哪些项目已被选中时,它只是 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 集合中删除一个项目时,所选项目的结果似乎都会发生变化,这就是它没有遍历所有项目的原因
我正在做一个 UWP 应用程序,我正在使用 ListView
来显示项目列表。我为此使用 ObservableCollection
。 ListView
使用多选模式,但当我检查哪些项目已被选中时,它只是 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 集合中删除一个项目时,所选项目的结果似乎都会发生变化,这就是它没有遍历所有项目的原因