0

我正试图了解 MVVM。对于简单的列表-> 数据视图,这没问题。但我很难理解多层是如何工作的。我有点工作,但对于哪些位有效,哪些位无效,它非常受欢迎。例如,有些数据更新,有些则没有。任何应该影响上层列表的更深层次的东西有时会更新列表,有时不会。一定有一个模式,但我还没有发现它。有人知道任何教程不仅仅是列表->数据类型的视图吗?

例子:

List of widgets
+- Widget name
+- Widget description
+- List of Widget parts
   +- Part ID
   +- Colour

在该示例中,我可以使用三列方法 - 左侧的小部件列表,中间的小部件信息(包括部件列表),然后是右侧的部件详细信息。

4

1 回答 1

3

您应该有多个 ViewModel,每个级别一个。然后你可以提供事件让上层更新变化。

例如,您可以有一个

public class WidgetListViewModel 
{
    public ObservableCollection<WidgetViewModel> Widgets {get; set; } 
}

public class WidgetViewModel
{
    public string WidgetName { get; set; }
    public string WidgetDescription { get; set; }
    public ObservableCollection<WidgetPartViewModel> Parts { get; set; }
}

public class WidgetPartViewModel
{
    public int PartId { get; set; }
    public System.Windows.Media.Color Color { get; set; }
}

有事件(包括一个简单的模式)在此处描述.Net 中的事件

此外,我推荐观看这个关于 MVVM 的优秀视频教程: Jason Dollinger on MVVM

该视频还涵盖了 Unity 的一些问题!(这对你来说可能很有价值)

他开发的源代码也可用: Jason Dollinger 的 Lab49 Sourcecode

于 2012-07-16T17:31:15.783 回答