gpt4 book ai didi

c# - MVVM:GUI 和 ViewModel 之间的真正分离

转载 作者:太空宇宙 更新时间:2023-11-03 10:31:51 25 4
gpt4 key购买 nike

我正在寻找 MVVM View 和 ViewModel 之间TRUE 分离的好例子/方法。我什至不想在 View 中引用 1 个 ViewModel 或其他方式。


问题描述

只是为了形象化我的问题:想象一下 3 个独立的项目; GUI( View )、逻辑(ViewModels)和模型。

概述:

enter image description here

如何设置解决方案,使其不会产生循环引用?

方法

我的一个想法是使用第四个项目作为某种经纪人:

enter image description here

我不喜欢的是,在这种情况下,Logic(ViewModel) 项目将是主要项目。或者也许没关系,我只是有一种奇怪的感觉。

大家怎么看?


编辑

感谢 Charles Mager,我找到了一篇非常有趣的文章,其中预定义了一个映射,因此当他调用 ShowDialog 方法时,它会根据映射决定加载哪个 UI。 CodeProject: Showing Dialogs When Using the MVVM Pattern

最佳答案

如果您在 View 和 ViewModel 之间没有一个引用,那么为什么您的 ViewModels 项目试图引用 Views 项目?

您的图片暗示这是为了允许显示对话框。在这种情况下,您通常会在 ViewModels 项目中定义一个接口(interface),该接口(interface)具有方法 ShowDialog(object viewModel) - 将其称为 IDialogService 或其他名称。

然后您将拥有第 4 个 bootstrapper 项目,该项目负责启动应用程序、显示主窗口并实现此 IDialogService,将 ViewModel 映射到 View并展示它。

关于c# - MVVM:GUI 和 ViewModel 之间的真正分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29818547/

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