【发布时间】:2009-06-10 19:25:47
【问题描述】:
我想知道如何在 MVVM 模式中使用视图模型处理继承。在我的应用程序中,我有一个类似于以下内容的数据模型:
class CustomObject
{
public string Title { get; set; }
}
class CustomItem : CustomObject
{
public string Description { get; set; }
}
class CustomProduct : CustomItem
{
public double Price { get; set; }
}
在我的应用程序中,我有一个 ViewModelBase 类,然后将有以下视图模型:
- CustomObjectViewModel
- CustomItemViewModel
- CustomProductViewModel
CustomObjectViewModel 的粗略实现类似于以下内容:
class CustomObjectViewModel : ViewModelBase
{
private readonly CustomObject _customObject;
public CustomObjectViewModel( CustomObject customObject )
{
_customObject = customObject;
}
public string Title
{
// implementation excluded for brevity
}
}
在我看来,我的视图模型会以与我的模型相同的方式扩展自己(CustomItemViewModel 扩展 CustomObjectViewModel 等等),这似乎是合乎逻辑的。但是,我注意到当我沿着继承树向下走时,我将添加对同一对象的其他引用。这对我来说似乎有点过分了,我想知道如何解决这个问题,以及是否有可能让它变得更干净。
【问题讨论】:
标签: c# wpf design-patterns mvvm