我想在我的应用程序中静态嵌入两个选项卡,并在选项卡更改时收到通知,但我不知道如何维护所有 MVVM 规则。
我有MainViewModel
继承自Conductor<IScreen>.Collection.OneActive
然后我有我的子视图模型FirstViewModel
,SecondViewModel
它继承自Screen
.
现在我MainView
看起来就像这样:
<TabControl x:Name="Items" />
我在它的 vm 构造函数中附加了我的观点:
Items.AddRange(
new IScreen[]
{
new FirstViewModel(events),
new SecondViewModel(events)
});
但是这样我需要在参数中传递events
(EventAggregator
)。
我希望能够使用[ImportingConstructor]
它自动完成。
此外,在代码中创建这些视图模型对我来说也不合适。我想我应该直接在其中指定这些选项卡,MainView
但是当我这样做时,我无法利用Conductor.Collection.OneActive
andScreen
之类的事件OnActivate
and OnDeactivate
。
这样做的正确方法是什么?