如何在ViewModels之间进行通信

时间:2009-04-04 00:27:56

标签: wpf mvvm viewmodel

我有一个带TabPage1和TabPage2的TabControl, 在TabPage1中,还有另一个带有2个TabPage11和TabPage12的TabControl1 在TabPage2中,还有另一个带有2个TabPage21和TabPage22的TabControl2。

每个项目(TabPage11,TabPage12,TabPage21和TabPage22)都有自己的View(以UserControl的形式)和ViewModel。每个View都有dataGrid。

现在我想为每个dataGrid实现ExportToExcel函数。我可以在每个tabItem上放置一个ExportToExcel按钮,但它看起来不太好。所以我在主窗口上放了一个按钮,所以当用户点击按钮时,所选tabItem上的dataGrid就会得到处理。

问题是mainWindow上的按钮不知道怎么告诉 选定tabItem的ViewModel以将其导出。

有什么建议吗? 提前致谢! 史蒂夫

2 个答案:

答案 0 :(得分:0)

主要功能应整理来自选项卡控制器的信息,如果我理解你的话,他们应整理来自子选项卡控制器的信息,这将从正确的视图模型中提取信息。

答案 1 :(得分:0)

假设您使用绑定到导出按钮的ICommand,为什么不通过绑定指定命令参数:

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

然后,所选选项卡将作为参数传递到命令的Execute方法