Иногда объект Domain Model с бизнес-логикой (DDD) при вызове метода запускается событие. В моей ситуации viewmodel (для данного представления) инкапсулирует объект домена и должен регистрироваться и реагировать на эти события домена (я должен использовать события, потому что тот же объект домена может управляться многими слабо связанными представлениями вместе с их режимами просмотра) ,Wpf: datatemplates и управление подпиской на события
Мне также нужно отменить регистрацию тех событий, когда этот конкретный контекст скрыт. Я могу обрабатывать этот регистр/отменять регистрацию/распоряжаться параллельно с отображением/скрытием/распоряжаться этим представлением, используя привязку данных, программно или что угодно, если сценарий достаточно прост ...
Проблема возникает, когда логика визуализации поставляется с DataTemplates. Как узнать, когда этот datatemplate будет скрыт, чтобы я мог отменить регистрацию моих событий? это лучший способ с wpf справиться с этим, вместо добавления дополнительных событий?
Какова наилучшая практика для обработки этого сценария в хорошем подходе к MVVM?
Редактировать: ok, проблема структурная. иногда выбор, сделанный внутри проекта, заставлял нас работать нетипично ... в хорошем mvvm-подходе эта проблема не должна возникать.
Да, конечно, я бы использовал привязку. но у вас была такая же проблема с одноразовыми режимами просмотра? – nemenos
Нет. Я никогда не чувствовал необходимости распоряжаться ими. Однако я могу себе представить, что огромное приложение, работающее в течение длительного времени, может в конечном итоге получить слишком много выделенной памяти. В этих случаях я попытался бы найти профиль и найти, где ссылки не позволяют собирать мусор. Отслеживание с использованием событий кажется слишком большим количеством домашнего хозяйства (и склонности к ошибкам) для меня. –