tro*_*ous 1 c# wpf mvvm mediator data-sharing
我搜索过,没有什么可以帮助我到达我需要的地方.
我的问题描述:
我们有一个对话窗口,可以托管多个视图(usercontrols).单击下一步和后退将在此对话框中向前和向后移动,类似于向导.
在6个对话框中,其中4个引用相同的核心数据.例如,我们将说一个ObservableCollection
既然如此,我有4个viewModel,它们都需要引用同一个ObservableCollection.每次我进入"向导"对话框中的新步骤时,我都不想保存然后重新加载列表.
我的问题是实现这一目标的最佳/最实用的方法是什么.
以下我考虑过的事情:
请告诉我您可能需要的其他信息来帮助我,我很乐意提供.
我不是在寻找代码示例,因为我正在设计.虽然代码示例可以帮助解释设计,但我全都是为了它.
最后,EventAggregator不是一个选项,因为我没有使用任何框架(除非我没有正确理解EventAggregator).
提前致谢!!
像Randolf说DI会起作用.我用MEF和CreationPolicy共享的构造函数注入执行此操作.你只需要把你想要的东西放在一个出口类中.这有多容易:)
和顺便说一句:介体模式是在视图模型而不是视图之间"通信".
[Export]
public class MyClassWichHasDataSharedFor4Views {}
public class Viewmodel1
{
[ImportingContructor]
public Viewmodel1(MyClassWichHasDataSharedFor4Views shareddata)
{}
}
public class Viewmodel2
{
[ImportingContructor]
public Viewmodel2(MyClassWichHasDataSharedFor4Views shareddata)
{}
}
public class Viewmodel3
{
[ImportingContructor]
public Viewmodel3(MyClassWichHasDataSharedFor4Views shareddata)
{}
}
public class Viewmodel4
{
[ImportingContructor]
public Viewmodel4(MyClassWichHasDataSharedFor4Views shareddata)
{}
}
Run Code Online (Sandbox Code Playgroud)
现在,4个视图模型引用了您的核心数据