Взгляните на Статья Джоша Смита о MVVM в MSDN Magazine .Многие считают Джоша гуру MVVM, и эта статья хорошо объясняет основы.
Имея это в виду, я бы, вероятно, сделал ваше приложение MVVM-приложением.
Модель "просто" будет вашей моделью данных (во многом как в MVC).
Далее будет представление для каждой из ваших панелей.Каждое представление может быть настроено как DataTemplate (как в статье) или как UserControl (как я уже делал и видел, что делал и во многих других местах).Это делает его модульным, его проще расширять, обслуживать и т. Д.
Ваше MainWindow действительно также считается представлением, в которое вы помещаете другие представления.
Все виды будут управлятьсяодним или несколькими классами ViewModel.Сколько у вас есть, зависит от вашего дизайна.Как правило, при наличии различных функций у вас будет более или менее однозначное отношение между View и ViewModel (хотя вы, безусловно, можете совместно использовать несколько представлений с одной ViewModel).Также обычно будет один класс «Main ViewModel» для хранения всего вместе.
В общих чертах, учитывая общее описание вашей проблемы, вполне вероятно, что ваша ViewModel будет содержать команду (или команды), обработанныекогда ваш пользователь выбирает ссылку.Эта команда, вероятно, установит какое-либо свойство, которое будет контролировать, какой вид будет отображаться (обычно через Binding).
Извините, я не могу получить более подробную информацию, чем это, но если бы я это сделал, мне нужно было бы узнать больше оваш дизайн, и мне пришлось бы писать намного больше материала, который не совсем уместен на этом форуме.