我目前正在学习如何通过 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(使用前将#替换为@)