|
|
1
3
不,你没有公开股票报价。您只是在视图中指定一个(松散类型的)接口。视图只知道两个属性:符号和价格。只要StockQuote实现了这些功能,就可以轻松地用其他任何东西替换它。 |
|
|
2
8
我比MVVM更熟悉MVC,但通常认为视图将了解模型。只要模型不知道这个观点,这是可以的。 如果这真的是出于某种原因的考虑,请查看“被动视图”设计,在该设计中,视图只知道输入到它的原始数据。 |
|
|
3
7
在MVVM中,视图模型是视图和模型之间的某种东西,它以视图可以轻松处理的方式公开模型中的数据。在严格的MVVM应用程序中,视图不知道模型,只知道视图模型。
在具体的示例中,不应调用视图模型
在视图模型中公开一些模型对象通常比较容易,但正确的方法是为每个模型类创建一个视图模型。
顺祝商祺!
|
|
|
4
3
检查视频: Jason Dolinger on MVVM . 它会回答你的问题。 另外,请参见SO问题 wpf mvvm confusion 其他资源。 |
|
|
5
1
我的理解是,视图模型是对模型的,属性是对字段的。这是一个非常松散的类比,但它确实意味着,如果视图直接访问模型,那么您没有正确地进行隔离。就像包装私有字段的类中的琐碎属性一样,在将相关模型属性包装到视图模型属性中以供视图使用时,最终会出现大量重复和样板代码。这正是困扰我的模式,我仍然没有决定是否利益值得膨胀。 在这个特定的例子中,我认为为每个stockQuote实例创建一个虚拟机是过分的,因为对于表示单个stockQuote的视图,您可能没有做任何重要的逻辑。我认为在这些小情况下,直接绑定到模型类会更干净、更易于维护。为小的案例创建一个虚拟机可以减少耦合,但是它也会增加复杂性,我认为这是一个案例一个案例地判断是否有益。 |
|
|
6
0
也许我错了,但视图模型并不能完全封装模型。例如,您有向视图公开的股票报价,但它们应该映射到视图模型的本机属性,然后将其绑定到该属性。这就需要“清理”在将数据传输到模型/视图期间可能需要的内容。 这样,视图只知道视图模型。它还意味着,如果模型不是遗留的,那么它可以作为接口实现,并进一步减少ViewModel之间的耦合。 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |
|
|
Barta · WPF MVVM不更新视图 1 年前 |
|
|
Denis Ivanov · WPF控件在属性更改时不会更新 1 年前 |
|
|
codymanix · WPF:TextBlock周围可见小边框? 1 年前 |
|
|
Nostromo · 来自背景对象的工具提示 2 年前 |
|
|
Nuvolari · 从可观测集合添加/删除时出现对象处理异常 2 年前 |
|
|
CCarter · 只能在设计器中DependencyObject的DependencyProperty上设置显示“Binding”的WPF ICommand DependencyProperties[重复] 2 年前 |
|
|
Thern · 在UI线程(WPF)上的void方法中调用异步函数 2 年前 |