0

Есть главное окно, содержащее таблицу. Есть вспомогательное окно, содержащее критерии для фильтра главной таблицы.

Как правильно организовать данную логику в рамках wpf и mvvm?

То есть получается есть MainViewModel, есть FilterViewModel. Необходимо из MainViewModel запустить FilterViewModel с ссылкой на MainViewModel. В MainViewModel необходимо иметь ссылку на некий объект, содержащий в себе критерии для фильтра. При обновлении критериев во FilterViewModel необходимо обновлять данный объект и через ссылку на MainViewModel вызывать refresh у таблицы. В MainViewModel тоже должна быть ссылка на FilterViewModel, что бы контролировать количество открытых окон с фильтром (не больше 1).

Правильны ли данные рассуждения?

Вопрос: учитывая, что окно с фильтром должно быть открыто максимум в единственном экземпляре, то как в mvvm это контролировать? То есть при закрытии FilterViewModel необходимо стирать на него ссылку у MainViewModel. Как?

Для открытия окно используется сервис на подобии описанного здесь.

kezeze
  • 175
  • Почему окно, а не просто <Popup>? Который можно прятать, можно показывать. То, что вы описали, не похоже на окно. – aepot Jun 16 '20 at 08:57
  • 1
    Вы можете иметь и разные модели (для фильтрации и данных), а можете на оба окна натянуть одну и ту же модель, все от вас зависит. Работать будет и так и так. – tym32167 Jun 16 '20 at 12:13

0 Answers0