как общаться между ViewModels - PullRequest
1 голос
/ 04 апреля 2009

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

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

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

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

Есть предложения? Заранее спасибо! Стив

Ответы [ 2 ]

0 голосов
/ 29 июля 2011

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

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

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

0 голосов
/ 04 апреля 2009

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

...