Я с тобой. Я начал с
(пользовательский интерфейс) <-> (xml)
где xml представлен как LINQy XElements, поэтому я получил уведомление PropertyChange.
Затем я добавил несколько вспомогательных классов без сохранения состояния, чтобы помочь мне разобраться с xml (раскрыть свойства, проверить данные и т. Д.). Я бы связывал XElements в ObservableCollections, чтобы я мог связываться с ними.
Прочитайте о M-V-VM и решили преобразовать мои вспомогательные классы в ViewModels. Проблемы:
Вспомогательные классы живут в пространстве имен модели данных, которое ничего не знает о пользовательском интерфейсе. Вспомогательные классы знают, как преобразовать строку базы данных в XElement, ViewModel никогда не увидит этого.
Вспомогательные классы имеют дело с XML. ViewModel не должен знать или заботиться.
Так что я на самом деле думаю о реализации
(пользовательский интерфейс) <-> (модель представления) <-> (помощник) <-> (xml)
но я просто воздерживаюсь от поднятия событий PropChange в помощнике только для того, чтобы вызвать их в viewmodel.