我在MVVM模式上遇到的一件事是当我尝试实现其他Windows时。当我创建一个额外的Window和ViewModel以与那个将用于特定目的的Window一起时,我的设计似乎迷失了。
以我的应用程序为例。这是我可以添加/删除/恢复的人员列表。我的初始设计是从ViewModel处理删除/恢复,但添加I必须从用户请求信息。鉴于此,我创建了一个新的Window和ViewModel(AddWindow / AddViewModel)。此时我迷路了。我已经阅读了关于创建控制器以进行通信的内容,但我甚至不确定它是否有意义。
在AddWindow上,用户可以填写两个字段(名字/姓氏)然后单击添加(或取消),在这种情况下,此时需要将数据传递回ViewModel,以便将其添加到该集合因此更新(也必须关闭AddWindow)。
我怎样才能以更好的方式思考这个问题,我该怎么做才能解决这个简单的问题呢?
答案 0 :(得分:1)
我怎样才能以更好的方式思考这个问题,我在这里可以做些什么 解决这么简单的问题?
尽量保持简单。不要不必要地添加视图/视图模型组合。在您的情况下,如果可能,请在现有视图中添加“添加”功能。也许你可以将你的视图/视图模型重命名为更像通用的东西,如“ManageThisView”/“ManageThisViewModel”?现在你有一个管理一组相关功能的堆栈。
通过切换控件的可见性或使用节省空间的控件,尝试在视图上发挥创意。只要视图直观,用户就可能比需要大量表单导航的方案更喜欢它。
我并不是建议您创建包含太多内容的“超级”视图/视图模型,而是考虑对相关功能进行分组并简化您拥有的类的数量。
有时间创建更多的类并使用像Prism这样的框架,但是你的框架似乎不是一个好的候选者。