У меня есть главное окно и много пользовательских элементов управления, которые я хочу показать / скрыть в зависимости от выбора пользователя. Например, существует пользовательский элемент управления с именем Customer, который должен получать всех клиентов из базы данных, или пользовательский элемент управления, представляющий собой форму для подписки на услугу. И так далее. Каждый из этих элементов управления имеет viewmodel, которая должна получать данные из базы данных. Проблема в том, что я не знаю, как правильно настроить контекст данных. Моя модель представляет собой модель данных сущности ado.net для простоты.
Я пытался:
<UserControl.DataContext>
<vm:CustomerViewModel/>
</UserControl.DataContext>
И я связываю поля с полями модели, но данные не отображаются. Прежде чем я использовал методы в MainWindowViewModel и установил viewmodel для представления в App.xaml.cs и вызвал метод:
Views.MainWindow newMainV = new Views.MainWindow();
ViewModels.MainVM mainVM = new ViewModels.MainVM();
mainVM.LoadCustomers();
newMainV.DataContext = mainVM;
newMainV.Show();
Но я подумал, что главное окно должно иметь свою собственную модель просмотра, которая будет обрабатывать только команды, и каждый пользовательский элемент управления должен иметь свою собственную модель просмотра, которая будет получать необходимые данные.
Что не так с моим подходом?
Спасибо за любую помощь.