Как и в любом приложении MVVM WPF, у меня есть несколько моделей представлений. У каждого есть несколько команд. В моем представлении реализован пользовательский интерфейс Fluent (лента Office), поэтому некоторые элементы отображаются в зависимости от контекста приложения. Лента детская к основному приложению.
Основная структура моего приложения состоит в том, что оно управляет курсом. В КУРСЕ есть несколько МОДУЛЕЙ, поэтому у меня есть ВМ для курса и модуля ... и у каждого есть команды.
Когда приложение загружается, я устанавливаю контекст данных главного окна на курс, чтобы привязка команд курса к ленте была простой и работала нормально.
Задача возникает, когда пользователь начинает работать с модулем. Когда модуль выбран из списка, детали отображаются в другом пользовательском элементе управления. Теперь ... моя задача - как соединить команды с лентой.
Я предполагаю, что мог бы иметь какой-то обработчик событий, который программно соединяет команды текущего модуля со всеми соответствующими элементами управления на ленте и удаляет все, когда контекст исчезает. Но это кажется большой ненужной работой. Есть ли более чистый способ сделать это?
Я думал о перенаправленных командах / событиях, но кто-то сказал мне, что это не сработает, потому что они не будут все пузыри подниматься к окну и обратно на ленту.
Ищите здесь какое-то руководство ... Я немного новичок в MVVM (но мне это нравится!).