gpt4 book ai didi

wpf - 在两个 ViewModel 之间传输数据

转载 作者:行者123 更新时间:2023-12-03 02:57:45 28 4
gpt4 key购买 nike

我的 WPF 应用程序中有两个 View 和两个 View 模型。我正在使用 MVVM ViewModelLocator 在 ViewModel 之间来回传输数据。这是推荐的做法吗?有更好的方法来实现这一目标吗?我目前正在使用此代码来访问 ViewModel1 中 ViewModel2 的属性

var _viewmodel2 = (Application.Current.Resources["Locator"] as ViewModelLocator).ViewModel2;

谢谢

最佳答案

您所追求的是类似于事件聚合器模式的东西。它将使用中央“聚合器”对象和订阅/引发事件(带有有效负载)来来回传送数据。是的,有点复杂。如果您的场景对此足够复杂,请参阅之前的 SO 帖子 here 中的更多信息。

但是......如果您的场景不太复杂,您可以在 View 模型 A 中维护对 View 模型 B 的引用,反之亦然。看起来这就是您正在使用 ViewModelLocator 所做的事情(它实际上在幕后使用 DI 来解析您所追求的 ViewModel 实例)。这并不违反 MVVM 模式。如果在数据共享过程中您订阅了 View 模型中的任何事件(与事件聚合器解决方案相同的情况),您只想确保自行清理。

关于wpf - 在两个 ViewModel 之间传输数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19672572/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com