#c# #wpf #listview #uwp
#c# #wpf #listview #uwp
Вопрос:
Я создаю приложение UWP и использую a ListView
для отображения списка элементов. ObservableCollection
Для этого я использую an. 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);
}
}
Комментарии:
1. Непонятно, как
ItemsList.SelectedItems
не будут возвращены все выбранные вами элементы, вы пробовали отладку, чтобы проверить значениеSelectedItems
при вызове обработчика событийAddItems_Click
? И если да, то каков был результат? Не могли бы вы привести несколько примеров?
Ответ №1:
Мне нужно было получить массив из выбранных элементов следующим образом:
private void AddItems_Click(object sender, RoutedEventArgs e)
{
foreach(Item item in ItemsList.SelectedItems.ToArray())
{
ItemsOfTravel.Remove(item);
}
}
Кажется, что результат выбранных элементов менялся каждый раз, когда я удалял элемент из наблюдаемой коллекции, и именно поэтому он не перебирал все элементы
Комментарии:
1. Это говорит мне, что я должен ждать этого 2 дня