【发布时间】:2021-04-18 10:37:57
【问题描述】:
我正在做一个 UWP 应用程序,我正在使用 ListView 来显示项目列表。我为此使用ObservableCollection。 ListView 使用多选模式,但是当我检查已选择哪些项目时,它只返回一半的选定项目。这是我的代码
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);
}
}
【问题讨论】:
-
不清楚
ItemsList.SelectedItems不会返回您选择的所有项目,您是否尝试在调用事件处理程序AddItems_Click时检查SelectedItems的值?如果是这样,结果如何?你能提供一些例子吗?