MAUI Grouped ListView Удаление элемента вызывает ошибку, если существует более одного элемента группыC#

Место общения программистов C#
Ответить
Anonymous
 MAUI Grouped ListView Удаление элемента вызывает ошибку, если существует более одного элемента группы

Сообщение Anonymous »

У меня есть сгруппированный список в C# MAUI MVVM, пункт назначения — Android

Код: Выделить всё

public class GroupData : ObservableCollection
{
public string Name { get; private set; }
public GroupData(string name, ObservableCollection d) : base(d) { Name = name; }
}

public class DetailData
{
public int Nr { get; set; }
public string Detail { get; set; }
}
Данные добавляются следующим образом

Код: Выделить всё

    public ObservableCollection GetData()
{
ObservableCollection data = new ObservableCollection();

data.Add(new GroupData("Group1", new ObservableCollection
{
new DetailData { Nr = 1, Detail = "Test 1" },
new DetailData { Nr = 3, Detail = "Test 2" }
}));

data.Add(new GroupData("Group2", new ObservableCollection
{
new DetailData { Nr = 3, Detail = "Test 3" },
new DetailData { Nr = 4, Detail = "Test 4" }
}));

return data;
}
Моя модель представления главной страницы имеет привязываемую коллекцию

Код: Выделить всё

   public ObservableCollection GroupData { get; } = new ObservableCollection();
и событие на кнопке при отображении списка.
Нажатие на нее должно удалить выбранный элемент

Код: Выделить всё

    [RelayCommand]
private async Task ButtonOk(DetailData data)
{
foreach (var item in GroupData)
{
foreach (var child in item)
{
if (child.Nr == data.Nr)
{
item.Remove(child);
break;
}
}
}
}
Данные отображаются здесь Теперь при добавлении ТОЛЬКО ОДНОГО сгруппированного элемента в наблюдаемую коллекцию «Группа 1» с двумя дочерними элементами удаление работает идеально.
Но при добавлении ВТОРАЯ «Группа 2», к сожалению, завершается с ошибкой
**Java.Lang.IllegalStateException: 'У указанного дочернего элемента уже есть родительский элемент. Сначала вы должны вызвать метод removeView() для родителя дочернего элемента.'
**
Что я делаю не так?
Спасибо!!!

Подробнее здесь: https://stackoverflow.com/questions/792 ... p-item-exi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»