я первый попытался это:Как обновить коллекцию Observable, связанную с DataGrid WPF?
var users = await _service.Read();
var usersTemp = users as IList<UserDto> ?? users.ToList();
usersTemp.ToList().ForEach(u =>
{
if (usersTemp.Contains(u))
{
var good = Users.Remove(u);
}
Users.Add(u);
});
У меня есть только один пользователь, чтобы проверить, но каждый раз, когда я выполняю приведенный выше код, который пользователь будет добавлен в коллекцию. Я добавил good
и нашел Remove
не работал.
Теперь вниз, чтобы повторно создать коллекцию, когда я на самом деле только хочу, чтобы обновить его:
Users = new ObservableCollection<UserDto>(await _service.Read());
OnPropertyChanged(nameof(Users));
Как я могу сделать это лучше? Я хочу, чтобы добавить новых пользователей в коллекцию, когда я получаю уведомление SignalR, а не делать еще один относительно дорогой Get и воссоздать коллекцию.
remove не работает, потому что объекты, входящие в сервис, отличаются от того, что уже есть в коллекции. метод contains возвращает true ?. – Nkosi