StockTrader RI > 控制器、演示者,WTF?

2024-06-23

我目前正在学习如何通过 Prism(复合 WPF)项目高级使用 WPF。

我观看了很多视频和示例,演示应用程序 StockTraderRI 让我提出了这个问题:

以下各部分的具体作用是什么?

  • SomethingService:好的,这是管理数据的东西
  • SomethingView:好的,这就是显示的内容
  • SomethingPresentationModel:好的,这包含视图绑定的数据和命令(相当于 ViewModel)。
  • SomethingPresenter:我不太明白它的用法
  • SomethingController:也不太明白

我发现演示者和控制器不是必需的,但我想了解为什么它们在这里。有人可以告诉我他们的role and when使用它们?


I had 完全相同的问题 http://compositewpf.codeplex.com/Thread/View.aspx?ThreadId=50763当我第一次使用棱镜时。

Controllers基本上是跨越整个模块的逻辑,而Presenters用于特定于某个的逻辑View.

例如,一个Presenter将响应导致视图中的按钮被禁用的命令。 AController会响应一个命令,导致View (and Presenter)被完全改变,或者可能在模块外壳的不同区域加载不同的视图/演示者。

Edit:至于什么时候使用它们,你可以跳过Controller如果您不需要上述编排,则完全可以。最简单的应用程序只有:

  • Module:将视图/演示者注册到Region
  • Presenter:响应视图中的命令并修改ViewModel.
  • ViewModel: 之间的适配器Presenter and View实现INotifyPropertyChanged http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx
  • View: 绑定到ViewModel并显示用户界面

Edit:至于 Presenter 与 ViewModel,大部分逻辑应该在 Presenter 中。将 ViewModel 视为容纳视图的逻辑,而 Presenter 则处理与视图交互的结果。

例如,用户单击“搜索”按钮View。这会触发一个ICommand,由您处理Presenter. The Presenter开始搜索并设置ViewModel.IsSearching属性,它会触发 PropertyChanged 通知CanSearch. CanSearch是一个基于其他几个属性的只读属性(例如IsSearchEnabled && !IsSearching)。中的“搜索”按钮View有它的Enabled财产绑定到CanSearch.

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

StockTrader RI > 控制器、演示者,WTF? 的相关文章

  • 如何覆盖全局样式(没有 x:Key),或者将命名样式应用于所有类型目标控件?

    我声明了一个要应用于项目中所有按钮的样式 该样式位于 ResourceDictionary 中 现在 在某个窗口中 我想继承此样式但添加一个值
  • DataGrid 是 WPF 中的必需品吗?

    我看到很多讨论正在进行 人们询问 WPF 的 DataGrid 并抱怨 Microsoft 迄今为止还没有在其 WPF 框架中提供 DataGrid 我们知道 WPF 是一项出色的 UI 技术 并且具有 ItemsControl DataT
  • WPF 在 .NET Framework 4.0 中的 x64 上启动缓慢

    我注意到 如果我为任何 CPU x64 构建 WPF 应用程序 则与在 x86 上启动 在发布和调试模式下 相比 启动 大约 20 秒 或加载新控件所需的时间要长得多 VS 的内部或外部 即使是最简单的 WPF 应用程序也会出现这种情况 该
  • WPF RichTextBox 中的只读 Run 元素?

    我可能完全是在想象这一点 但我可以发誓有一种方法可以使 RichTextBox 中的各个 Run 或 Parapgraph 元素成为只读 我还可以发誓 几周前我自己尝试了一种方法 并对结果感到满意 我隐约记得它看起来像这样
  • 访问 ControlTemplate 内的控件

    这是 xaml
  • 设置不可调整大小的 GridViewColumn

    我在 C WPF 应用程序中使用 ListView 和 GridViewColumn 对于某些列 我使用可见性管理器 this one https stackoverflow com a 9634769 6479770 但是 当第 1 列和
  • WPF 用户控件;触发器和更改其他控件

    我创建了一个 WPF UserControl 其中包含一个按钮和一个组合框 我想根据鼠标的位置更改两者的样式 因此鼠标悬停的 UIElement 的颜色为黑色 另一个的颜色为红色 如果两者均未设置样式 则将应用默认样式 别担心 这个噩梦般的
  • 打印 WPF 位图图像

    打印位图图像的最佳方法是什么 我有 System Drawing 背景 所以我正在考虑将其转换为位图 然后打印它 但我认为可能有更好的方法 Thanks 根据 Drew 的回答 最好测量并安排传递给 PrintVisual 方法的容器 这将
  • 您最好的 Swing 设计模式和技巧是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 工厂模式数据库连接

    我正在尝试使用 MySQL 实现数据库连接上的工厂模式 SQL Server 面临奇怪的错误 你调用的对象是空的 在 SQL 命令对象上 internal class SqlServerDB IDatabase private SqlCon
  • 用于存储和检索每个用户敏感数据的.Net 设计模式

    Net 服务器应用程序是否有与存储和检索敏感的每个用户信息 例如第 3 方凭据 相关的参考模式 我的初步设计思路是 生成具有适当强私钥的自签名 X509 证书 导出证书和密钥并将其存储在 USB 密钥中 该 USB 密钥将被锁在宝箱中并由龙
  • 全静态方法和应用单例模式有什么区别?

    我正在创建一个数据库来存储有关我的网站用户的信息 我正在使用 stuts2 因此使用 Java EE 技术 对于数据库 我将创建一个 DBManager 我应该在这里应用单例模式还是将其所有方法设为静态 我将使用这个 DBManager 进
  • 多态与策略模式

    两者有什么区别Strategy图案和Polymorphism在Java中 我很困惑 通过策略模式实现的任何目标基本上都可以通过多态性实现 如果我在这方面错了 请纠正我 请还提供我的例子来消除我的困惑 对我来说 链接来自CKing https
  • C# ObservableCollection OnCollectionChanged 在项目更改时不会触发

    来自 MSDN 关于 OnCollectionChanged 的 内容 在添加 删除 更改 移动项目或刷新整个列表时发生 我正在更改附加到位于我的集合中的 obj 的属性 但 OnCollectionChanged 未触发 我正在 obj
  • Java Builder 模式和“深”对象层次结构

    在 深层 对象层次结构中使用生成器模式的最佳实践是什么 为了详细说明 我探索了将 Joshua Bloch 提出的 Builder 模式应用到我的 XML 绑定代码的想法 我使用的是 SimpleXML 但这个问题适用于任何情况 我的对象层
  • 通过搜索字符串过滤 CollectionViewSource - 绑定到 itemscontrol (WPF MVVM)

    有没有办法可以过滤CollectionViewSource仅显示游戏ItemsSource哪个 标题 包含 searchString In my PosterView我有这个CVS
  • ControlTemplate 或 DataTemplate 内的自定义资源字典

    编辑 使用标准 NET ResourceDictionary 时也会出现此问题 并且似乎是在控件或数据模板内使用资源字典时出现的问题 我有一个自定义资源字典 它遵循共享资源实例的通用方法 http softnotes wordpress c
  • 如何在 WPF Visual Studio 设计器中显示占位符值,直到可以加载实际值

    我是一名经验丰富的 C 开发人员 但还是一名 WPF 新手 我认为是基本问题 我无法通过网络搜索找到答案 这是简化的用例 我想在 WPF TextBlock 中显示一个字符串 所以我在 XAML 控件的代码隐藏中编写了一些 C 代码 pub
  • WPF 复选框状态不会在固定页面中更新

    我正在尝试导出一些基于在 WPF 中用作模板的固定页面元素的数据 并且我在更新复选框的值时似乎遇到问题 奇怪的是 我还在模板中使用了文本块和文本框 但这些在更新其内容时没有问题 所以 从一开始 我想要导出的数据位于名为 RepairStat
  • WPF MVVM后台打印数据绑定问题

    我正在使用 wpf mvvm 开发一个销售点应用程序 在交易生命周期的许多阶段 都会在后台打印收据 我已经使用其他示例在后台生成和打印收据 我正在后台打印一个 UserControl 一切看起来都很棒 然后 我为该控件创建了 ViewMod

随机推荐

  • [UIImageView _isResizable]:无法识别的选择器发送到实例 SIGABRT

    我有这段代码试图在一个周期中运行一组简单的图像 我在应用程序中拥有的只是在视图控制器的 h 文件中声明的一个 UIImageView property strong nonatomic IBOutlet UIImageView imageD
  • 将 ActionMailer 与公司 Gmail 帐户结合使用

    我不确定这是否属于服务器故障 或者如果在其他地方更有意义 请随意将其移动 我已经看到了设置 smtp 设置以及将 ActionMailer 与 Gmail 结合使用的示例 并确认它们对我有用 基本上对我来说是这样的 config actio
  • 研究环境中的软件项目和开发[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 当您或项目不清楚最终 如果有 产品是什么时 可以采取哪些有用的策略 让我们将 研究 理解为对一个领域的探索 在这个领域中 许多事情是未
  • 具有多个订阅者的单个 Observable

    我有一个Observable lt
  • 2 个 Codeigniter 安装在同一台服务器上,并带有子文件夹

    我有以下场景 一个 Codeigniter 网站 我们称之为WebA 安装在sebserver 的根目录下 从域访问 www example com 另一个 Codeigniter 网站 我们称之为WebB 安装在同一 Web 服务器的子文
  • HTML
    标签在 IE/Edge 中不起作用

    我正在尝试添加用户可以显示和隐藏的附加可切换部分 我的要求 支持主要浏览器 Mac 上的 Opera Chrome Edge IE11 Firefox Safari 没有 JavaScript 并正在考虑使用
  • JavaScript 函数中的 CSS 代码

    我有这个 JavaScript 方法 我想要执行的CSS代码是 但仅适用于那些进入上述 if
  • OpenGL旋转自定义实现

    我正在尝试编写 Opengl glRotatef angle x y z 函数的自定义实现 我写了旋转矩阵 但是当我尝试使用它时 效果与原始函数不一样 这是我的代码 void mglRotate float angle float x fl
  • RazorEngine 尝试发送电子邮件时出错

    我有一个发送多封电子邮件的 MVC 4 应用程序 例如 我有一个用于提交订单的电子邮件模板 一个用于取消订单的模板等 我有一个Email Service有多种方法 我的控制器调用Send方法如下所示 public virtual void
  • 如何从 iPhone 中的 NSString 中删除 HTML 标签?

    我正在使用日历功能来满足我的应用程序要求 如果我单击今天日期或明天日期或其他某个日期 则需要在其中显示吉祥详细信息UITextview 我一直在尝试在文本视图中格式化字符串 但无法解决 我对 xcode 很陌生 我想删除HTML我的字符串中
  • Google Script:如何突出显示一组单词?

    我想为谷歌文档编写一个脚本来自动突出显示一组单词 一句话 我可以使用这样的脚本 function myFunction var doc DocumentApp openById ID var textToHighlight TEST var
  • 从 URL 导入数据

    圣路易斯联邦储备银行的各种网页上提供了大量数据 例如 http research stlouisfed org fred2 series OILPRICE downloaddata cid 32217 http research stlou
  • 在 Python 中查找某个日期之前的时间

    找到约会前的时间的最佳方法是什么 我想知道年 月 日和小时 我希望有人有一个很好的功能 我想做这样的事情 此评论是在 2 个月零三天前发布的 或者此评论是在 1 年零 5 个月前发布的 datetime http docs python o
  • Git 命令以编程方式将文件的一系列行添加到索引?

    我想要一个命令可以让我做类似的事情 git manual add some file txt 10 20 这相当于 git add p some file txt 并说y仅包含第 10 行到第 20 行的大块 是否有内部 git 命令可以让
  • 无法在 Appium 中使用 xpath 定位元素

    我无法使用 xpath 识别元素 附上相同的屏幕截图 我想用标签标识元素列表
  • AngularJS ngRepeat:如何区分偶数/奇数元素?

    我是角度新手 并尝试执行以下操作 tr div td class even a href element a td div div td class odd a href element a td div tr 对于上面的代码 两者ng i
  • 尝试使用 openpyxl.load_workbook 访问文件时出现“TypeError:值必须是序列”

    我正在使用代码访问网络服务器上的 Excel 文件 import openpyxl path r S dic1 dic2 dic3 file xlsx wb openpyxl load workbook path 这在我的电脑上工作得很好
  • jquery-select2 的依赖下拉内容

    我有一个 Rails 4 应用程序 我在其中使用 Jquery select2 作为下拉列表 我有两个下拉菜单 我希望第一个下拉菜单中的选择确实决定了用户可以在第二个下拉菜单中选择的内容 有点像选择一个国家并给出该国家的州列表 在我的应用程
  • 如何在AppDelegate中执行Segue?

    我正在尝试使用 Storyboard 在 IOS 5 1 上完成一个应用程序 基本上我正在做一个保管箱应用程序 由于我使用的是 Dropbox SDK Dropbox 的链接是在 AppDelegate m 中处理的 用户可以选择从会话中取
  • StockTrader RI > 控制器、演示者,WTF?

    我目前正在学习如何通过 Prism 复合 WPF 项目高级使用 WPF 我观看了很多视频和示例 演示应用程序 StockTraderRI 让我提出了这个问题 以下各部分的具体作用是什么 SomethingService 好的 这是管理数据的