Введите представление в контейнер MVVM WPF
Вопрос
Это дало мне боль в течение некоторого времени.
Я знаю, что Prism вводит взгляды в регионы, однако есть ли способ сделать подобные вещи с Cinch, на первый взгляд? Например, у меня есть контейнер (фактически область), который может содержать любое представление во время выполнения - я не хочу явно устанавливать представление в XAML, так как это загрузит его, и это немного грязно. Есть ли контейнер, который я могу использовать для этого? И как бы я это сделал? (не должен быть специфичным для привязки ..)
Благодарю.
Решение
Чтобы ответить на мой собственный вопрос, я обнаружил, что Prism V4 предоставила полезное решение - региона, называемое запросом.
Я использовал requestNavigate для открытия нового окна (проверьте StockTrader RI), однако это кажется чрезвычайно громоздким, если следуют соответствующей методологии MVVM. Вместо этого я решил использовать класс ChildWindow в расширенном инструментарии WPF, где вы можете связаться исключительно с свойством «Windowstate» (Open/закрыто) и указать все остальное в XAML.
Я также использовал requestNavigate для инъекции просмотров в регионы - теперь я использую MEF (в то время, когда использовал Unity). Я нахожу этот подход намного более гибким, хотя и немного «магией» в отношении отладки.