Есть главное окно, содержащее таблицу. Есть вспомогательное окно, содержащее критерии для фильтра главной таблицы.
Как правильно организовать данную логику в рамках wpf и mvvm?
То есть получается есть MainViewModel, есть FilterViewModel. Необходимо из MainViewModel запустить FilterViewModel с ссылкой на MainViewModel. В MainViewModel необходимо иметь ссылку на некий объект, содержащий в себе критерии для фильтра. При обновлении критериев во FilterViewModel необходимо обновлять данный объект и через ссылку на MainViewModel вызывать refresh у таблицы. В MainViewModel тоже должна быть ссылка на FilterViewModel, что бы контролировать количество открытых окон с фильтром (не больше 1).
Правильны ли данные рассуждения?
Вопрос: учитывая, что окно с фильтром должно быть открыто максимум в единственном экземпляре, то как в mvvm это контролировать? То есть при закрытии FilterViewModel необходимо стирать на него ссылку у MainViewModel. Как?
Для открытия окно используется сервис на подобии описанного здесь.
<Popup>? Который можно прятать, можно показывать. То, что вы описали, не похоже на окно. – aepot Jun 16 '20 at 08:57