我是否需要持有至少一个可以处理所有视图的视图模型?

阿尔文·桑托斯(Alvin Santos)

例如,我有几个视图,每个视图都有viewmodel,然后我的mainviewmodel将处理所有这些视图,以供我导航或加载到mainwindow。我是否绕过了MVVM的规则?因为有一个mainviewmodel知道我所有的观点?

假发的

进行MVVM设计的方法有两种:先查看和先查看模型。尽管它们都是有效的,但它们都有起有落。两者都确保视图模型不以任何方式依赖于视图,而仅视图依赖于视图模型。您的解决方案是有效的MVVM,但会导致视图和视图模型层之间出现循环依赖关系。所以我建议坚持

观看优先

您可以从MainWindow.xaml开始,然后根据需要进行设计。您可以通过添加实例化视图代码中每个窗口/对话框/控件的视图模型

<MainWindow.DataContext>
  <vm:MainViewModel>
</MainWindow.DataContext>

进入XAML并开始绑定所有状态,以便可以将行为移入该MainViewModel类。

这种方法的升级版使用了依赖项注入容器(autofacninject等)来实例化MainViewModel,而MainWindow并未真正知道视图模型的具体类型。

视图模型优先

bootstrapper中,您将以某种方式将MainWindow.DataContext设置为其视图模型的实例,但是否则,您将依赖于DataTemplate实例化视图(抱歉,无法使用DataTemplate实例化Window)。

视图模型中的每个可绑定属性都可以绑定到ContentPresenter,视图模型中的每个可绑定集合都可以绑定到ItemPresenter的子类(ListBox,ComboBox等),您差不多完成了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以在一个控制器中有两个视图模型吗?

来自分类Dev

EXTJS 5我可以在视图模型的store属性中有一个树存储吗?

来自分类Dev

对可以具有两种视图模型模式的一个视图的建议

来自分类Dev

对可以具有两种视图模型模式的一个视图的建议

来自分类Dev

是否可以在一个asp.net MVC视图中具有两个模型

来自分类Dev

如何快速创建一个 Network 类来处理我所有的数据库 Firestore 操作并且可以从任何视图控制器调用?

来自分类Dev

MySQL-有什么方法可以检查一个视图是否被其他视图引用?

来自分类Dev

Laravel 5.8 在一个视图中处理所有错误

来自分类Dev

有没有办法让我们创建一个全局功能,可以在angularjs中访问应用程序中的所有视图

来自分类Dev

建立一个持有模型的链接

来自分类Dev

从关联的模型(表)中查找具有至少一个关联的所有记录

来自分类Dev

在所有活动之上添加一个视图

来自分类Dev

给定一个主键,是否可以在 EF Core 模型中找到所有外键?

来自分类Dev

每个视图有多个模型,多个模型有一个控制器?

来自分类Dev

所有有效的电子邮件中是否至少包含一个@符号?

来自分类Dev

是否有任何逻辑可以找到连续至少有一个真

来自分类Dev

如何将所有视图嵌套到一个垂直居中的视图中?

来自分类Dev

Symfony 2-在所有视图中包含表格,并由一个控制器处理

来自分类Dev

android 在我的所有视图周围添加了一个阴影,我该如何删除它?

来自分类Dev

由于后面有一个视图,因此可以禁用片段中的列表视图

来自分类Dev

是否有更好的方法从视图中删除最后一个子视图

来自分类Dev

是否有更好的方法从视图中删除最后一个子视图

来自分类Dev

如果我只需要对一个列应用不同的功能,是否可以应用agg函数而不列出所有列

来自分类Dev

我可以获得edittext的文本对象引用项的视图持有者吗?

来自分类Dev

Backbone.js-是否需要将我的所有网页内容都保留为单独的模型和针对它们的视图。

来自分类Dev

ViewPager 带有视图模型和实时数据,所有 6 个标签数据都被最后一个标签数据替换

来自分类Dev

是否有一个很好的方法可以通过金字塔框架的自省使视图本身可调用

来自分类Dev

在一个视图模型中,是否要在视图模型中创建原型。

来自分类Dev

具有重定向功能的两个模型的一个视图

Related 相关文章

  1. 1

    我可以在一个控制器中有两个视图模型吗?

  2. 2

    EXTJS 5我可以在视图模型的store属性中有一个树存储吗?

  3. 3

    对可以具有两种视图模型模式的一个视图的建议

  4. 4

    对可以具有两种视图模型模式的一个视图的建议

  5. 5

    是否可以在一个asp.net MVC视图中具有两个模型

  6. 6

    如何快速创建一个 Network 类来处理我所有的数据库 Firestore 操作并且可以从任何视图控制器调用?

  7. 7

    MySQL-有什么方法可以检查一个视图是否被其他视图引用?

  8. 8

    Laravel 5.8 在一个视图中处理所有错误

  9. 9

    有没有办法让我们创建一个全局功能,可以在angularjs中访问应用程序中的所有视图

  10. 10

    建立一个持有模型的链接

  11. 11

    从关联的模型(表)中查找具有至少一个关联的所有记录

  12. 12

    在所有活动之上添加一个视图

  13. 13

    给定一个主键,是否可以在 EF Core 模型中找到所有外键?

  14. 14

    每个视图有多个模型,多个模型有一个控制器?

  15. 15

    所有有效的电子邮件中是否至少包含一个@符号?

  16. 16

    是否有任何逻辑可以找到连续至少有一个真

  17. 17

    如何将所有视图嵌套到一个垂直居中的视图中?

  18. 18

    Symfony 2-在所有视图中包含表格,并由一个控制器处理

  19. 19

    android 在我的所有视图周围添加了一个阴影,我该如何删除它?

  20. 20

    由于后面有一个视图,因此可以禁用片段中的列表视图

  21. 21

    是否有更好的方法从视图中删除最后一个子视图

  22. 22

    是否有更好的方法从视图中删除最后一个子视图

  23. 23

    如果我只需要对一个列应用不同的功能,是否可以应用agg函数而不列出所有列

  24. 24

    我可以获得edittext的文本对象引用项的视图持有者吗?

  25. 25

    Backbone.js-是否需要将我的所有网页内容都保留为单独的模型和针对它们的视图。

  26. 26

    ViewPager 带有视图模型和实时数据,所有 6 个标签数据都被最后一个标签数据替换

  27. 27

    是否有一个很好的方法可以通过金字塔框架的自省使视图本身可调用

  28. 28

    在一个视图模型中,是否要在视图模型中创建原型。

  29. 29

    具有重定向功能的两个模型的一个视图

热门标签

归档