gpt4 book ai didi

c# - WPF , MVVM , MasterDetailPage , 设计

转载 作者:行者123 更新时间:2023-12-03 10:30:00 26 4
gpt4 key购买 nike

我正在尝试在 mvvm 世界中走自己的路,

我没有起诉任何框架,只是我看到的
http://blog.roboblob.com/tag/viewmodellocator/

我真的很喜欢那篇文章,而且效果很好。

我正在尝试创建一个包含 3 个用户控件的主详细信息 View 。
其中一个需要根据用户输入进行更改(如向导)

所以我有类似的东西

MasterDetailsView
-> MenuView
-> FirstPageView
-> SliderView

根据我阅读的帖子,每个 View 都创建自己的 View 模型并“自动”绑定(bind)它
所以 FirstPageView 得到了他的 View 模型。

如果 SliderView 更改选择我想绑定(bind)到 FirstPageView 一个新的 View 模型

如果 FirstPageView 有按钮(下一步)在其中单击,我想将 FirstPageView 切换到 SecondPageView 等。

我有点迷茫,谁能告诉我如何设计和解决这个问题?

我应该使用 mvvm light 还是其他一些框架?我尝试使用 mvvm light,但缺乏示例让我退缩了。

欢迎任何指导,谢谢。

最佳答案

下面的说法是错误的:

each view create his own viewmodel and bind it "automaticly" so FirstPageView got his viewmodel



您的 View 不应对您的 View 模型的生命周期负责。

使用 MVVM 模式时要记住的最重要的事情之一是应该可以在没有您的 View 的情况下执行您的应用程序。在您的情况下,将创建一个密切反射(reflect)您所需 View 的 View 模型。这是伪代码:
MasterDetailsViewModel
{
MenuViewModel
CurrentPageViewModel
SliderViewModel
}

请注意,这里最大的区别是我们有一个 CurrentPageViewModel,而不是特定于页面的 View 模型。该属性从 FirstPageViewModel 实例开始,然后随着用户从一个页面前进到下一个页面而更改。

有关如何实现这一点的详细信息,我会彻底推荐 Josh Smith 的文章:

WPF Apps With The Model-View-ViewModel Design Pattern

关于c# - WPF , MVVM , MasterDetailPage , 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8877946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com