В базовой вьюмодели делаете проперти Parent базового типа. В классе навигации сэтите парент новым вьюмоделям. В базовом классе вью модели делаете метод protected T GetRootVM<T>(IViewModel state) where T: class { if (state.Parent == null) { return null; } if (state.Parent is T) { return state.Parent as T; } return GetRootVM<T>(state.ParentState); } Все. Зная тип вы можете достучаться до любой вьюмодели. Ну или есть другой вариант - регистрировать скоуп вьюмоделей и из этого скоупа доставать ту что вам нужна. Но со скоупами тоже мороки много.
Обсуждают сегодня