У меня есть подкласс List
под названием LocationList
]. Это удобный способ добавить другие свойства (например, IsExpanded
и такие, которые мы можем использовать в пользовательском интерфейсе. Достаточно хорошо. Но теперь мы хотим, чтобы каждое местоположение знало о своем родителе. Таким образом, мы должны получать уведомления, когда что-то добавляется в LocationList, но вы не можете переопределить Добавить
и Удалить
. Хотя мы можем использовать ObservableCollection,это больше похоже на конструкцию View / ViewModel. Это чистые данные модели.
Конечно, мы могли бы вручную установить родителя при добавлении его в коллекцию, но я ненавижу такую неавтоматизированную логику, поскольку нет ничего, что могло бы обеспечить ее правильное выполнение. Позволить коллекции (ну, List) автоматически сказать: «Эй ... вас добавляют, поэтому я назначу вашего родителя классу, который владеет мной». Это то, что мне нужно.
Моя мысль состоит в том, чтобы вместо подкласса List
, чтобы вместо этого просто создать простой класс, который использует внутри List
, а затем я могу просто предоставить свои собственные методы добавления / удаления и обработать внесены изменения в 'Parent'. Однако это нарушает возможность перечисления внутренней коллекции, поскольку она находится внутри.
Тем не менее, есть ли способ прослушать изменения в List
или, по крайней мере, делегировать его интерфейс IEnumerable
из обернутого объекта в его оболочку?