我想在我的应用程序中静态嵌入两个选项卡,并在选项卡更改时收到通知,但我不知道如何维护所有 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.OneActiveandScreen之类的事件OnActivateand OnDeactivate。
这样做的正确方法是什么?