【发布时间】:2010-05-06 18:11:48
【问题描述】:
与任何 MVVM WPF 应用程序一样,我有一些视图模型。每个都有一些命令。我的视图实现了 Fluent UI(Office 功能区),因此有一些项目会根据应用程序的上下文亮起。功能区是主应用程序的子项。
我的应用程序的基本结构是它管理一个课程。一个课程中有多个模块,所以我有一个用于课程和模块的虚拟机......每个都有命令。
当应用程序加载时,我将主窗口的数据上下文设置为课程,因此将课程命令绑定到功能区很容易并且工作正常。
当用户开始使用模块时,挑战就来了。当从列表中选择一个模块时,详细信息将显示在另一个用户控件中。现在...我的挑战是如何将命令连接到功能区。
我假设我可以有一些事件处理程序,以编程方式将当前模块的命令连接到功能区中的所有相关控件,并在上下文消失时删除所有内容。但这似乎是很多不必要的工作。有没有更清洁的方法?
我考虑过路由命令/事件,但有人告诉我这行不通,因为它们不会一直冒泡到窗口并返回到功能区。
在这里寻找一些指导...我对 MVVM 有点陌生(但喜欢它!)。
【问题讨论】: