我的问题是:如何管理 View 模型的继承链?
我的情况:
我有一个标准 查看模型库 它只实现了 INotifyPropertyChanged 接口(interface)。
此外,我有一个 业务对象 View 模型 它有一个 Guid,一个 PersonBaseViewModel 其中有个人核心数据,一个客户 View 型号 与客户相关的东西和 员工查看模型 与员工相关的东西。
所有的 View 模型都封装了一个模型对象(Customer、Employee、PersonBase)。
模型通过构造函数进入 View 模型。
如果我使用构造函数链(每个 View 模型都调用基本构造函数),每个 View 模型都有它的模型来从模型返回封装的值。
但是我必须在每个 View 模型中都有一个模型属性。在 CustomerViewModel 的情况下,我会在 中有一个引用。客户 View 型号 ,一个在 PersonBaseViewModel 中,一个在 中业务对象 View 模型 对于同一个对象。这对我来说听起来很愚蠢。
或者我必须在上层 View 模型中转换每个属性访问。
p.s.这只是我模型层次结构的一小部分。
提前致谢。
最佳答案
IMO 最简单的答案是使用泛型,这可能很简单
public abstract class ViewModelBase<TModel> TModel : class{
public TModel Model { get; protected set; }
}
.net 类型系统将知道您的 TModel 是 Person、Customer 或其他任何内容,无需强制转换。
让我知道您是否需要更多或是否想发布一些需要帮助的代码。是的,一开始要让你的父类(super class)型层次结构恰到好处可能会很棘手。
高温下,
绿柱石
关于c# - View 模型继承和重复模型引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10723922/