WPF , MVVM , MasterDetailPage , Designing
本文关键字:Designing MasterDetailPage MVVM WPF | 更新日期: 2023-09-27 18:20:19
我正努力在mvvm世界中行走,
我不起诉任何框架,只起诉我在http://blog.roboblob.com/tag/viewmodellocator/
我真的很喜欢那个帖子,而且效果很好。
我正在尝试创建一个包含3个用户控件的主细节视图。其中一个需要根据用户输入进行更改(如向导)
所以我有类似的东西
MasterDetailsView
-> MenuView
-> FirstPageView
-> SliderView
根据我读到的帖子,每个视图都创建了自己的视图模型,并"自动"绑定所以FirstPageView得到了他的视图模型。
如果SliderView更改选择,我想绑定到FirstPageView一个新的视图模型
如果FirstPageView有按钮(下一步)点击里面,我想把FirstPageView切换到SecondPageView等等
我有点迷路了,有人能告诉我如何设计和解决这个问题吗?
我应该使用mvvm-light还是其他一些框架?我试着使用mvvm-light,但缺少示例使我望而却步。
欢迎任何指导,谢谢。
下面的语句是错误的:
每个视图创建自己的视图模型并"自动"绑定FirstPageView得到了他的视图模型
您的视图不应该对视图模型的生命周期负责。
使用MVVM模式时需要记住的最重要的一点是,应该可以在没有视图的情况下执行应用程序。在您的情况下,In将创建一个与您所需视图紧密镜像的视图模型。这是伪代码:
MasterDetailsViewModel
{
MenuViewModel
CurrentPageViewModel
SliderViewModel
}
请注意,这里的最大区别是我们有一个CurrentPageViewModel,而不是一个特定于页面的视图模型。此属性最初是一个FirstPageViewModel实例,然后随着用户从一个页面转到下一个页面而更改。
关于如何实现这一点的详细信息,我完全推荐Josh Smith的文章:
WPF应用程序与模型视图视图模型设计模式