我目前正在学习如何通过 Prism (Composite WPF) 项目来高级使用 WPF。
我观看了许多视频和示例,演示应用程序 StockTraderRI 让我问了这个问题:
以下每个部分的确切作用是什么?
我看到 Presenter 和 Controller 不是必需的,但我想了解它们为什么在这里。谁能告诉我他们的角色 和 当使用它们?
最佳答案
我有 exactly the same problem当我第一次通过 Prism 。Controllers
基本上适用于跨越整个模块的逻辑,而 Presenters
用于特定于 View
的逻辑.
例如,Presenter
将响应导致 View 中的按钮被禁用的命令。一个 Controller
将响应导致 View
的命令(和 Presenter
)被完全更改,或者可能在模块外壳的不同区域加载不同的 View/Presenter。
编辑:至于什么时候用,可以跳过Controller
完全如果您不需要上述编排。最简单的应用程序只有一个:
Module
: 将 View /演示者注册到 Region
Presenter
: 响应 View 中的命令并修改 ViewModel
. ViewModel
: Presenter
之间的适配器和 View
实现 INotifyPropertyChanged
View
: 绑定(bind)到 ViewModel
并显示 UI 编辑:至于 Presenter 与 ViewModel,你的大部分逻辑都应该在 Presenter 中。将 ViewModel 视为容纳 View 的逻辑,而 Presenter 则处理与 View 交互的后果。
例如,用户单击您的
View
中的“搜索”按钮。 .这会触发 ICommand
,由您的 Presenter
处理. Presenter
开始搜索并设置 ViewModel.IsSearching
属性,触发 CanSearch
的 PropertyChanged 通知. CanSearch
是基于其他几个属性的只读属性(例如 IsSearchEnabled && !IsSearching
)。 View
中的“搜索”按钮有它的Enabled
属性绑定(bind)到 CanSearch
.
关于wpf - StockTrader RI > Controller 、演示者、WTF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2354994/