小编fov*_*ven的帖子

模型通常如何在ViewModel对象之间共享?

假设我有一个程序必须以两种不同的方式表示一些数据.如果我想通过使用两个不同的ViewModel来实现这一点,那么它们似乎都应该共享Model对象的相同实例.那么在MVVM中使用WPF通常如何实现?

我能想到的一种方法是ViewModel构造函数可以获取相应Model的实例,并且可以在Application.Startup事件的处理程序中完成所有连接.我不记得在我见过的任何一个例子中看到过这个,但我可能错过了它.

到目前为止,似乎大多数情况下,示例只是显示ViewModels自己创建Model类的实例,这在某些情况下可以工作,但对于我的情况似乎不是一个好的解决方案,因为每个ViewModel都会创建它自己的Model类实例.似乎这样也可以消除用不同的模型替换模型的可能性,这可能是单元测试的情况.我猜测依赖注入框架或IoC容器会消除这个问题吗?到目前为止我只使用了手动依赖注入.

在另一个例子中,似乎View创建了Model对象本身并将它们传递给ViewModels,这看起来也不是一个好主意,因为View不应该知道模型的任何内容?

有些例子似乎没有Model类,只有Views和ViewModels.

有没有更好的方法我没有提到?

另外,我应该使用依赖注入框架还是IoC容器?如前所述,我之前并没有真正使用过,我认为这对我目前正在进行的程序的大小来说可能有些过分.如果没有真正深入研究,我可能会弄错.

c# wpf mvvm

6
推荐指数
1
解决办法
1318
查看次数

ViewModels应该被不同的视图重用吗?如果是的话,何时?

根据我的阅读,似乎在MVVM中被认为是每个View都有自己相应的ViewModel的最佳实践,这是有道理的,因为ViewModel应该是View的模型.通常,不鼓励不同视图重用ViewModel.总是这样吗?如果不是,那么确定是否应该以这种方式重用ViewModel的一般指导原则是什么?

我可以想到的一种情况是,如果两个视图使用模型中完全相同的数据并且视图本身只是以不同方式表示数据,那么将ViewModel重用到具有不同视图的位置可能会令人满意.如果视图可以自己处理以不同方式表示相同数据,则一个ViewModel可能能够有效地为每个View提供服务.

wpf mvvm

5
推荐指数
1
解决办法
1613
查看次数

标签 统计

mvvm ×2

wpf ×2

c# ×1