我有一个服务返回 BaseItem 类型的数组。BaseItem 有 N 个子类型。我正在我的 WPF 应用程序(Prism、MVVM)中从视图模型中使用此服务。在这个视图模型的构造函数中,我填充了一个 BaseItem 类型的可观察集合:
public CurrentViewModel(IDataService dataService)
{
_dataService = dataService
var baseItems = _dataService.GetAllItems(); // there are many kinds of BaseItems
_baseItems = new ObservableCollection<BaseItem>(baseItems.ToList());
}
到现在为止还挺好。在我的CurrentView
我有一个ItemsControl
绑定到这个集合的。在这个控件中,我想BaseItem
通过使用另一个View
(及其视图模型)来呈现每个。
到目前为止,我无法使用DataTemplateSelector
,因为我无法在其中定义每个 DataTemplate,我正在加载 N 个模块(其中包含从 继承的类BaseItem
)并且 PRISM 从特定文件夹动态加载它们。
我正在使用视图模型优先方法,我还需要哪些其他替代方案来实现该场景?