.NET 4.x ObservableCollection и добавление элементов в ообработчике CollectionChanged - C#
Формулировка задачи:
Всем привет.
У меня довольно простая задача, но столкнулся с маленькой неприятностью.
Есть свойства типа observablecollection.
В него добавляются итемы (для простоты пусть будут строки).
Когда у нас есть N-ые итемы(строка "мама" и "папа"), нам нужно добавить ещё итемы (к примеру "ребёнок" и "собака").
У нашей колекции есть удобный евент - CollectionChanged.
Подписавшись на ивент я проверяю итемы.
Но как только нужное условие срабатывает и я добавляю итем, вылетает ошибка "нельзя добавить итем во время события ""КоллекцияИзменилась"" "
Как решить этот вопрос? Где\Как проверять чтоб уйти от этого ивента? Или работая с этим ивентом добавить итем?Решение задачи: «.NET 4.x ObservableCollection и добавление элементов в ообработчике CollectionChanged»
textual
Листинг программы
using System; using System.Collections.ObjectModel; using System.Collections.Generic; public class Program { public static Collection<string> list; public static void Main() { list = new Collection<string>(); list.Add("str1"); list.Add("str2"); list.Add("str3"); list.Add("str4", new []{ "str2" }, "Test" ); list.Add("str5"); list.Add("str6"); list.Add("str7"); foreach(var item in list) Console.WriteLine(item); } public class Collection<T>:ObservableCollection<T> { public void Add(T item, IEnumerable<T> checks, T itemToAdd) { base.Add(item); foreach(var checkItem in checks) if(Contains(checkItem)) base.Add(itemToAdd); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д