我有一个对象列表,我们称它为CameraList,还有一个名为StructureWindow的窗口,它在TreeView中显示CameraList。然后我有另一个名为ViewerWindow的窗口,它在网格中显示CameraList。每个窗口都有其对应的ViewModels。两个ViewModels必须使用相同的CameraList实例。我该如何实现这一点?在哪里创建CameraList实例?如何从不同的ViewModels共享/访问?
在此应用程序的WinForms版本中,我创建了一个包含静态属性的静态类,并在那里实例化了CameraList,仅此而已。在整个应用程序中,我可以随心所欲地访问它。
但由于我正在尝试使用MVVM模式迁移到WPF,我想知道在WPF和MVVM中做这件事的最佳实践是什么?
Here's what I'm trying to achieve
敬请指教。干杯伙计们。
发布于 2017-05-23 14:06:56
将相机列表放在单独的基础视图模型中,并将其设置为窗口的datacontext。这将允许您使用相对源绑定从两个视图绑定到此数据:
Binding="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type Window}}, Path=DataContext.CameraList}"https://stackoverflow.com/questions/44126354
复制相似问题