在MVVM中公开抽象模型类的集合

时间:2017-06-28 00:57:27

标签: wpf mvvm

在编写WPF应用程序时,我正在努力设计设计。这是一般性问题:

考虑一个需要跟踪一个人想要购买的抽象车辆列表的应用程序。使用MVVM设计,将不同的汽车类型(例如摩托车,汽车,卡车等)暴露给视图的最佳方式是什么,以便可以使用不同的形式显示和编辑每种车辆类型?

目前我有这个设置:

模型

abstract class Vehicle { .. }
class Car : Vehicle { .. }
class Truck : Vehicle { .. }
class Cart {
    ObservableCollection<Vehicle> Vehicles;
}

视图模型

class VehicleViewModel { .. }
class CartViewModel {
    ObservableCollection<VehicleViewModel> Vehicles;
}

通过这种设计,我不确定如何在我的购物车视图中为每种车辆类型创建DataTemplate,因为CartViewModel只包含VehicleViewModel列表{1}}(而非CartViewModelTruckViewModel等)。

有人可以指导我指导吗?

0 个答案:

没有答案