Создать аналог List, который будет реагировать на внесение изменений. Какие интерфейсы нужно наследовать? - C#
Формулировка задачи:
Нету ли таких возможностей в существующих списках?
Нужно на каждое внесение изменений в список (добавление, удаление, изменение какого то значения) вызывать событие Alteration, при котором:
- изменятся булево свойство (не позволит закрыть рабочую вкладку без SaveDialog'a)
- перерисовываться вкладка с появлением звездочки возле названия (Без имени.txt*).
Максимум, что я могу отследить - это присвоение ссылке, нового списка. Выходит нужно создать свой список с минимумом функционала.
Много ли методов придется реализовывать, если унаследовать интерфейс? И что именно нужно наследовать?
Список желательно обобщенный.
Решение задачи: «Создать аналог List, который будет реагировать на внесение изменений. Какие интерфейсы нужно наследовать?»
textual
Листинг программы
class Program
{
static void Main(string[] args)
{
EventList<int> list = new EventList<int>();
list.Add(1);
list.Remove(1);
}
}
public class EventList<T> : ObservableCollection<T>
{
protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
{
Console.WriteLine("List changed! Action event: {0}", e.Action);
}
}