我试图了解MVVM。对于简单的列表 - >数据视图,没问题。但我很难理解多层的工作原理。我有点工作,但它是非常受欢迎的,错过了哪些位工作,哪些位不工作。例如,一些数据更新,有些则没有。在更深层次上应该影响上层列表的任何内容有时会更新列表,有时则不会。必须有一个模式,但我还没有发现它。有没有人知道任何教程不仅仅是list->数据类型的视图?
示例:
List of widgets
+- Widget name
+- Widget description
+- List of Widget parts
+- Part ID
+- Colour
在该示例中,我可以使用三列方法 - 左侧的小部件列表,中间的小部件信息(包括部件列表),然后是右侧的部件详细信息。
答案 0 :(得分: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; }
}
此处描述了事件(包括简单模式)Events in .Net
此外,我建议在MVVM上观看这个优秀的视频教程: Jason Dollinger on MVVM
该视频还涵盖了Unity的一些问题! (这对你来说非常有价值)
他开发的源代码也可用: Lab49 Sourcecode by Jason Dollinger