2009-04-04 5 views
0

У меня есть TabControl с TabPage1 и TabPage2, В TabPage1 есть еще один TabControl1 с двумя элементами TabPage11 и TabPage12.
В TabPage2 есть еще один TabControl2 с двумя элементами TabPage21 и TabPage22.как общаться между ViewModels

Каждый элемент (TabPage11, TabPage12, TabPage21 и TabPage22) имеет свой собственный вид (в виде UserControl) и ViewModel. на каждом представлении есть dataGrid.

Теперь я хочу реализовать функцию ExportToExcel для каждого DataGrid. Я могу поместить кнопку ExportToExcel на каждый элемент tabItem, но он выглядит не очень хорошо. Поэтому я помещаю одну кнопку в главное окно, поэтому, когда пользователь нажимает кнопку, обрабатывается dataGrid на выбранном tabItem.

Проблема заключается в том, что кнопка mainWindow не знает, как рассказать о ViewModel выбранного tabItem для его экспорта.

Любые предложения? Спасибо заранее! Steve

ответ

0

Основная функция должна сопоставлять информацию с контроллерами (-ами) на вкладках, и они должны собирать информацию из своих контроллеров суб-вкладок, если я правильно понимаю вас, что будет извлекать информацию из правильной модели представления.

0

Предполагая, что вы используете ICommand, связанный с вашей кнопки экспорта, то почему бы не указать параметр команды путем связывания:

<Button Command="{Binding ExportToExcelCommand}" CommandParameter="{Binding SelectedItem, ElementName=MyTabControl}">Export</Button> 

Выделенная вкладка будет передана в качестве параметра в Execute метод команды

Смежные вопросы