【发布时间】:2012-05-07 00:39:32
【问题描述】:
我是 MVVM 的新手,我被卡住了......
我在主窗口中有一个列表框。 ListBox 包含由 DataTemplates 显示的 WhatEverViewModel 类型的项目。用户可以与这些项目进行交互,并且 WhatEverViewModel 有几个 DependencyProperties,它们可能会在交互过程中发生变化。
我的问题是: 我如何才能优雅地(在 MainWindowViewModel 中)对 CURRENTLY SELECTED WhatEverViewModel 的 DependencyProperties 的变化做出反应。我个人会在 WhatEverViewModel 中实现一些事件,当 ListBox 的 SelectedItem 发生变化时,我会附加到当前选择的 WhatEverViewModel 的事件上。但我认为在 MVVM 中可能有更优雅的方式来解决这个问题......
谢谢。
【问题讨论】:
-
您使用的是视图优先还是视图模型优先的方法?
-
为什么会有一个包含 ViewModel 列表的 listBox?通常,每个视图都有 1 个视图模型,并且每个视图模型都会有一个模型列表(例如),您将列表框绑定到视图中。除非这就是你的意思。
-
视图模型有一个视图模型列表,这些视图模型绑定到 xaml 中的列表框。