Как удалить элемент из списка ListView
Не получается удалить выбранный элемент из списка ListView. Пробую делать следующим образом, но программа просто зависает и вылетает. Делаю следующим образом:
<ListView Name="UsersListView" SelectionChanged="Button_ClickSelectUser">
<ListView.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding username}" />
</WrapPanel>
</DataTemplate>
</ListView.ItemTemplate>
В самом классе выполняю следующую процедуру
public partial class Users : UserControl {
ObservableCollection<User> users;
...
private void Button_ClickSelectUser(object sender, SelectionChangedEventArgs e) {
users.RemoveAt(UsersListView.SelectedIndex);
UsersListView.Items.Refresh();
}
}
При выборе элемента из ListView программа вылетает. Понимаю, что делаю что-то не так, но не могу понять, что именно?
UPD:
Я получаю список пользователей в JSON с удаленного сервера, после чего формирую из них UI ListView. Мне нужно, чтобы при клике на пользователя, элемент из списка удалялся (в UI ListView).
namespace WpfApp1 {
/// <summary>
/// Логика взаимодействия для MainWindow.xaml
/// </summary>
///
public partial class MainWindow : Window {
ObservableCollection<User> users = new ObservableCollection<User>();
User SelectedUser { get; }
public MainWindow() {
InitializeComponent();
DataContext = this;
getAllUsers();
}
async Task getAllUsers() {
var response = await Task.Run(() => {
return "[{\"id\":1,\"username\":\"demo\"},{\"id\":2,\"username\":\"test\"}]";
});
var data = JsonConvert.DeserializeObject<ObservableCollection<User>>(response);
UsersListView.ItemsSource = data;
}
private void Button_ClickSelectUser(object sender, RoutedEventArgs e) {
users.RemoveAt(UsersListView.SelectedIndex);
}
}
}
Без использования MVVM.