我有一个WPF应用程序,我正在使用Caliburn.Micro MVVM框架编写。
我的ShellViewModel
是指挥,因此ActiveItem
我可以在ActiveItem
之间切换。
我的问题是处理我的应用程序菜单。它位于ShellView.xaml
标记中,我有一个“保存”菜单项。我想将此传递给ActiveItem
Save()
方法,并且还绑定到ActiveItem上的CanSave
guard属性,并且当没有活动项或活动项时也禁用不支持保存。
我看不到处理案件的简单方法。有没有其他人尝试类似的东西,他们找到了一个很好的方法与Caliburn.Micro这样做吗?
我对如何做到这一点有其他想法,但是对于Caliburn.Micro提供的所有其他内容,我觉得我必须错过一些简单的东西。
先谢谢。
答案 0 :(得分:0)
您可以使用Event Aggregator发布Save事件,并让活动项IsActive
处理SaveEvent。
对于防护,您可以让CanSave测试使用MEF在ShellVM和ActiveItem之间共享的值。