タイプ 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 はそれらを特定のフォルダーから動的にロードします。
ビューモデルの最初のアプローチを使用していますが、シナリオを実装するために他にどのような方法が必要ですか?