我目前正在构建基于MVVM的应用程序。该应用程序还应具有MVVM样式的向导。该向导不是一个普通的向导,它是一种特殊的向导。我的目标是使用
实现向导1。)也有多个分支。该向导可以指导您向其他方向发展。所以向导一定不能直截了当。
2.)也可以有捷径。您可以跳过设置默认值的某些页面。
3。)也很正常 - 直截了当。
请注意,wizrad页面中的一些信息是即时的。这意味着,信息可以在每个步骤之间传递和处理。
有没有像模式这样的方法来解决我的问题?我如何以最佳方式实施它?
答案 0 :(得分:9)
你是否在CodeVM中阅读了关于MVVM中的向导的这篇好文章,并由两位MVVM大师编写: http://www.codeproject.com/KB/WPF/InternationalizedWizard.aspx?display=Print
答案 1 :(得分:3)
答案 2 :(得分:2)
如果你的向导有一个存储每个步骤的状态/结果的VM,并且位于一个用户控件的视图后面......
你可以在向导视图中有一个框架,后面的代码需要2个事件(这显然取决于你的MVVM架构是否可以使用它?)。
事件1)当您的向导步骤绑定时会引发其NotifyPropertyChanged:告诉您的帧“导航”到相应的页面(如向导VM中的属性中所述)。
事件2)在“Navigated”事件框架上,以便您可以将当前页面数据上下文指向VM。
这样,向导视图模型从头到尾控制向导的状态,它还可以描述可以轻松添加,编辑等的步骤。
显然,这可能不适合每个人对MVVM的看法。