WPF MDI 应用程序中的组合根在哪里?

2023-12-04

在传统的 MDI 应用程序中,当命令发生时(例如按下功能区按钮),将创建一些对象(表单),因此它可能是一个组合点。我对此类应用程序中的组合根感到困惑。我在某处读到我们可以使用视图模型定位器看起来像服务定位器图案。如您所知,服务定位器模式受到了一些人的谴责。

现在请就这个问题给我建议。

提前致谢。


ViewModelLocator 是否是服务定位器部分取决于其签名, and 部分取决于其作用.

无论如何,WPF 应用程序的组合根是启动方法- 应用程序是否是 MDI 应用程序不会改变这一点。

由于在 MDI 应用程序中,您可以拥有任意数量的子窗口,因此您很可能需要一个抽象工厂来创建每个 ViewModel。

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

WPF MDI 应用程序中的组合根在哪里? 的相关文章

随机推荐

  • 如何从codeigniter中的数组获取单个值

    我使用此代码将一些数据存储到数组中 this gt data result this gt mymodel gt search keyword 当我使用打印结果时print r this gt data 它显示像这样 Array base
  • 选择随机行

    大家好 我的要求很简单 我想从表中选择随机行 例如我的表有 10 行 我想随机选择任意三行 psql 有什么办法吗 Use the random功能 SELECT FROM tablename ORDER BY random LIMIT 3
  • python - 如何在文档字符串中包含变量?

    我正在使用 cmd 模块 我想记录一个命令 如下所示 def do this self arg this command accepts these values values format values legal values 原因是我
  • “didChangeSection:”未调用 NSfetchedResultsController 委托方法

    我有一个标准的分割视图控制器 带有详细视图和表格视图 按详细信息视图中的按钮可能会导致对象更改其在表视图顺序中的位置 只要由此产生的排序更改不会导致添加或删除某个部分 这种方法就可以正常工作 IE 对象可以更改其在某个部分中的顺序或从一个部
  • 自定义 Android 评级栏

    我想在我的锻炼应用程序中实现自定义评级栏 该栏应有 4 颗星 步长为 1 布局如下所示
  • 为什么 list.append 在布尔上下文中计算结果为 false? [复制]

    这个问题在这里已经有答案了 有什么原因吗list append评估为假 或者只是成功时返回 0 的 C 约定起作用 gt gt gt u gt gt gt not u append 6 True 大多数就地改变容器的 Python 方法都会
  • 您在 WCF Web 服务中使用枚举类型吗?

    我听到有些人说枚举是邪恶的 不应该在 Web 服务中使用 因为如果分配了某些值 或者如果枚举被标记为Flags属性 他们还表示 公开枚举的 Web 服务更难维护 但无法真正给我提供可行的论据 那么根据您的经验 在 WCF Web 服务中使用
  • 如何在面板上绘图使其不闪烁?

    这是我的代码 当我将光标移到表单上时 它可以工作 圆圈正在移动但正在闪烁 我怎样才能解决这个问题 public partial class Preprocesor Form int x y Graphics g public Preproc
  • 如何使用斯坦福解析器解析英语以外的语言?在java中,而不是命令行

    我一直在尝试在我的Java程序中使用Stanford Parser来解析一些中文句子 由于我对 Java 和斯坦福解析器都很陌生 因此我使用 ParseDemo java 进行练习 该代码可以很好地处理英语句子并输出正确的结果 然而 当我将
  • 从邮件的 FROM 字段中的 Exchange 用户中提取 SMTP 地址

    我想按域 可能还有用户 组织文件夹中的邮件 我有一个脚本 但它无法从 Exchange 用户获取 SMTP 地址 下面的代码是地址提取器的摘录 For each obj in objFolder Items If obj SenderEma
  • 读取文件时查找文件结尾

    void graph fillTable ifstream fin char X int slot 0 fin open data txt while fin good fin gt gt Gtable slot Name fin gt g
  • 检查两个列表是否共享至少一个元素[重复]

    这个问题在这里已经有答案了 我有两个列表 例如 a mail1 mail2 mail3 mail4 b mail2 mail5 我想检查列表中是否有任何元素b也出现在列表中a 我想知道是否有一种方法 以及它是什么 可以在不使用 for 循环
  • F# 错误“错误 FS0039:命名空间或模块“MySql”未定义”?

    你好 我尝试连接 F 和 MySQL 数据库 但出现以下错误 错误 FS0039 命名空间或模块 MySql 未定义 到目前为止 我尝试引用包含 MySQL Data dll 的文件夹 项目 gt 添加引用 gt 浏览 gt C Progr
  • LDAP 搜索中的 CN、OU、DC 是什么?

    我在 LDAP 中有一个这样的搜索查询 这个查询到底是什么意思 CN Dev India OU Distribution Groups DC gp DC gl DC google DC com CN 通用名称 OU 组织单位 DC 域组件
  • 将 NSString 转换为 NSDate - 格式错误

    您好 我正在尝试将字符串转换为 NSDate 格式 但它返回格式错误的值 并且返回的值也是 GMT 时间 NSString myString 10 30 AM NSDateFormatter dateFormatter NSDateForm
  • 取消Javascript超时

    我在 Web 服务器上托管了一个很长的进程 该事件是通过用户单击按钮从网页触发的 一些 Javascript 通过 Ajax 定期轮询 以检查服务器端操作是否已完成 为此 我使用setInterval 以及稍后clearInterval停止
  • Chrome中如何通过iframe订阅pushManager?

    我可以通过 iframe 注册 Service Worker 当我尝试运行 pushManager subscribe 时 我有 DOMException Registration failed permission denied 此问题仅
  • stdin stdout python:如何重复使用同一输入文件两次?

    我对 Python 很陌生 甚至对 stdin stdout 方法也很陌生 尽管如此 我需要使我的脚本可用于 UNIX 命令 以便可以使用我的脚本一次处理 2 个输入文件 该脚本与命令行参数完美配合 newlist def f1 def f
  • 避免在 ASP.NET MVC 中使用会话状态是一个好习惯吗?如果是,为什么以及如何?

    它没有明确地写在某处 但在阅读了一些关于 ASP NET MVC 的博客后我有这样的感觉 只是好奇 就想在这里问一下 UPDATE 我不是在询问服务器上的内存 存储 RAM 问题 对于他们来说 有一个解决方案可以将会话存储在进程外 我知道
  • WPF MDI 应用程序中的组合根在哪里?

    在传统的 MDI 应用程序中 当命令发生时 例如按下功能区按钮 将创建一些对象 表单 因此它可能是一个组合点 我对此类应用程序中的组合根感到困惑 我在某处读到我们可以使用视图模型定位器看起来像服务定位器图案 如您所知 服务定位器模式受到了一