MVVM 中的控制器,如何从视图模型获取信息到它的控制器?

2023-11-28

我们正在使用 MVVM 模式构建一个应用程序,我们有使用 DI 连接所有视图和视图模型的控制器。我见过的所有 MVVM 示例都非常简单并且只有 1 个视图。视图模型如何/应该如何与控制器对话?控制器了解模型和视图,视图模型是否应该将事件发送回控制器?保存应该在哪里进行?模型?控制器?


您的 ViewModel 能否不依赖 IController 或其他接口,以便它们可以与之对话?我尝试将尽可能多的应用程序逻辑保留在 ViewModel 之外,因为这些类很容易变得臃肿。

 MyViewModel(IController controller)
 {
     this.controller = controller;
 }

 void Save()
 {
     this.controller.Save();
 }

我确实同意 MVVM 框架的示例过于简单化。特别是,我希望看到更多在应用程序中的视图/屏幕之间移动的示例。我创建了一个 IViewManager 接口,以允许我的 ViewModel 请求我们移动到另一个视图。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVVM 中的控制器,如何从视图模型获取信息到它的控制器? 的相关文章

随机推荐

  • 我可以限制通用堆栈的深度吗?

    是否有内置方法来限制 System Collection Generics Stack 的深度 那么 如果您处于最大容量 推入新元素会删除堆栈的底部吗 我知道我可以通过转换为数组并重建堆栈来做到这一点 但我认为可能已经有一个方法了 编辑 我
  • 使用 (Core)Foundation 折叠/规范化连字(例如 Æ 到 ae)

    我正在编写一个助手 它对输入字符串执行多次转换 以便创建该字符串的搜索友好表示 考虑以下场景 德语或法语文本全文搜索 The entries in your datastore contain M ller Gro mann inglet
  • 什么是三法则?

    什么是复制对象 mean 什么是复制构造函数和复制赋值运算符 我什么时候需要自己申报 如何防止我的对象被复制 介绍 C 处理用户定义类型的变量值语义 这意味着对象在各种上下文中隐式复制 我们应该理解 复制对象 的实际含义 让我们考虑一个简单
  • 为什么Git源代码中一些声明为extern和头文件的函数没有包含在source中?

    我想查看真实应用程序的源代码以了解良好的编程实践等 因此我选择了 Git 并下载了 1 8 4 版本的源代码 随机浏览各种文件后 这两个文件中的一些内容引起了我的注意 strbuf h strbuf c 这两个文件显然定义了一个 API本文
  • 使用双指针作为参数

    请找到如下所示的代码片段 include
  • 如何通过 mmap 映射内存指针进行写入以立即刷新?

    在双 ARM 处理器系统 确切地说是 Xilinx Zynq 上使用 dev mem 和 mmap 时 我遇到了似乎是缓存的问题 我的配置是不对称的 一个处理器运行 Linux 另一个处理器运行裸机应用程序 它们通过不在 Linux 虚拟内
  • Windows 8 fat 二进制文件(适用于 x86 和 ARM 的 exe)

    有谁 这里 知道 Windows 8 是否会有一种可以用 Visual Studio 2012 编译的胖 exe 并且在 ARM 和 x86 机器上都支持 我猜不会 因为据我所知 您无法创建执行 32 或 64 位代码的胖二进制文件 据我所
  • 从原始位到 jpeg,无需写入文件

    我有一个实时应用程序 它接收以 base64 编码的 jpg 图像 我不知道如何在 matlab 中显示图像 而不必将图像保存在磁盘中并随后打开它 这是我到目前为止的代码 它在显示图像之前将图像保存在磁盘中 raw base64decode
  • 如何在ash shell中保持程序在后台运行

    我需要通过 SSH 连接到嵌入式设备 启动后台程序 然后断开连接并保持后台进程运行 问题是嵌入式设备正在使用 ash shell 不是 bash 或其他任何东西 因此 nohup 和 screen 不可用 我还没有找到任何方法来断开灰烬中的
  • Android Edittext 中输入类型为数字的多行是否可能?

    当android edittext输入类型为数字时 是否可以制作多行 我已经在 xml 文件中尝试过以下内容 android inputType number textMultiLine 但这没有用 当输入类型为数字时 是否无法制作多行 请
  • Jersey 2.0 的依赖注入

    在没有任何 Jersey 1 x 知识的情况下从头开始 我很难理解如何在 Jersey 2 0 项目中设置依赖项注入 我还了解到 HK2 在 Jersey 2 0 中可用 但我似乎找不到有助于 Jersey 2 0 集成的文档 Manage
  • 在 Android 中使用网络服务发现出现内部错误

    在第一次使用示例和 NSDManager 实现期间开发者页面上的教程 应用程序成功启动发现并找到设备 不过现在好像已经坏掉了 程序启动时 经过一番初始化后 代码进入如下方法并成功运行 public void discoverServices
  • 如何向 Outlook 发送富文本格式的电子邮件?

    通过分配 text html 内容类型字符串以 HTML 格式发送电子邮件 到 Outlook 非常有效 如下所示 using MailMessage message new MailMessage message From new Mai
  • 对数组字段执行更新时,无法使用字符串字段名称 [$] 附加到数组

    rowsI 尝试对记录数组中的每个字段执行 mongodb 更新 示例架构如下 id ObjectId 508710f16dc636ec07000022 summary uid ABCDEF username bigcheese name
  • 如何有选择地导入 ES2015 模块函数,但具有命名空间?

    我正在开始使用 Rollup 和 D3 版本 4 它是用 ES2015 模块编写的 我使用传统的 D3 命名空间 d3 编写了一些代码 现在我想使用 Rollup 创建自定义捆绑包 我想使用 tree shaking 因为我可能只使用 d3
  • 如何确保 Python while 循环需要特定的时间来运行?

    我正在用 while 循环读取串行数据 但是 我无法控制采样率 代码本身似乎需要 0 2 秒才能运行 所以我知道我无法比这更快了 但我希望能够精确控制采样速度 我觉得我可以使用 睡眠 来做到这一点 但问题是 在不同的点 循环本身可能需要更长
  • 检查 Firebase 中是否存在文档并根据图标返回

    我想检查 Firebase 集合中是否存在特定文档 据此 我的应用程序应该显示一个彩色图标或灰色图标 我试图用一个返回布尔值的方法来解决这个问题 在我的构建小部件中 我调用该方法并分配正确的图标 这是我检查文档是否存在的方法 checkIf
  • 设置自定义字体的自定义字体内存泄漏

    以下用于设置自定义字体的代码会减慢我的整个应用程序的速度 我该如何修改它以避免内存泄漏并提高速度并很好地管理内存 public class FontTextView extends TextView private static final
  • 使用递归的幂函数

    我必须用Java 编写一个power 方法 它接收两个整数 它们是正数还是负数并不重要 它的复杂度应该是O logN 它还必须使用递归 我当前的代码得到两个数字 但我一直输出的结果为零 我不明白为什么 import java util Sc
  • MVVM 中的控制器,如何从视图模型获取信息到它的控制器?

    我们正在使用 MVVM 模式构建一个应用程序 我们有使用 DI 连接所有视图和视图模型的控制器 我见过的所有 MVVM 示例都非常简单并且只有 1 个视图 视图模型如何 应该如何与控制器对话 控制器了解模型和视图 视图模型是否应该将事件发送