Я новичок на wpf. Поэтому я решил сделать для себя какое-то базовое wvf-приложение mvvm. Мое приложение содержит два блока: блок навигации и блок контента. Блок навигации содержит несколько кнопок для изменения вида блока контента. Как я уже говорил, я создаю приложение MVVM, поэтому мои представления - это пользовательские элементы управления.
Я гуглил, как сделать навигацию. Итак, в моем приложении я сделал это:
В основном XML я написал как:
<DataTemplate DataType="{x:Type ViewModels:MainViewModel}">
<Views:MainView />
</DataTemplate>
<DataTemplate DataType="{x:Type ViewModels:PersonViewModel}">
<Views:PersonView />
</DataTemplate>
<DataTemplate DataType="{x:Type ViewModels:CompanyViewModel}">
<Views:CompanyView />
</DataTemplate>
В моем основном ViewModel я поместил параметр CurrentViewModel, который хранит информацию о текущем viewModel (и представлении).
В основном xaml я действительно написал (мой блок контента):
<ContentControl Content="{Binding CurrentViewModel}" />
Так что теперь я могу переключать представления;
Мои основные вопросы:
- Если у меня будет много просмотров, будет сложно написать новую Datatemplate в основном xaml. Если у меня есть 50 просмотров? Как не всегда это написать?
- Нужно ли использовать страницы для навигации? (В catel, mmvm light они используют пользовательские контроли, а не страницы)
- В catel я сделал навигацию, используя viewModeToViewConverter и без таблицы данных в основной xaml - как сделать так? Я действительно не могу понять, как это работает.
Спасибо за ответы!