Изменить контекст данных при использовании UserControls - PullRequest
1 голос
/ 12 февраля 2011

Я использую простое главное окно, которое содержит 2 пользовательских элемента управления (которые я создал) эти пользовательские элементы управления имеют файл кода ModelView для каждого (я использую шаблон MVVM). каждый файл ModelView содержит одну команду (и реализацию команды Execute и CanExecute). Проблема в том, что когда мне нужно активировать каждую команду (через MainWindow, потому что главное окно содержит эти пользовательские элементы управления), мне нужно изменить DataContext Главное окно для ViewModel элемента управления, который в данный момент находится в фокусе, в противном случае я не могу выполнить команду (привязка Команды внутри UserControl.xaml не может найти Команду). Я думаю, что отслеживание после сфокусированного UserControl для того, чтобы изменить MainWindow DataContext - не тот путь. Кто-нибудь сталкивался с такой проблемой раньше ??

Спасибо.

1 Ответ

2 голосов
/ 12 февраля 2011

Способ решения этой проблемы заключается в создании ViewModel для главного окна и добавлении двух свойств к этой виртуальной машине, по одному для каждой ViewModel, которую вы создали ранее.

Таким образом, вы можете назначить новую виртуальную машину для DataContext окна и привязать DataContext каждого пользовательского элемента управления к одному из свойств.

Поместите команды на нужную виртуальную машину, где вы хотитеиспользовать это.Имеет ли это смысл?

Кстати: вы называете ModelView тем, что я бы назвал ViewModel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...