アイテムのリストを含む WPF のリストボックスがありResultsViewModelますが、これらのオブジェクトの実際のランタイム タイプは
CalculateResultsViewModel、ScenarioResultsViewModel、GraphResultsviewModelなどなど、
これらはすべて基本抽象クラスを拡張しResultsViewModelます。
これらの各ビュー モデルは、異なる でレンダリングListBoxする必要があるため、異なる が必要DataTemplateです。XAML だけで簡単に実行できます。難しいのは、ビューモデルが「処理中」または「失敗した」場合、DataTemplate「処理中」または「エラー」を表示する必要があることですTriggers。これは、これまでのところ .DataTemplateSelectorまたは基本的な XAML スタイルを使用します。
私が考えることができる唯一の解決策は(私が知っているきれいではありません) 、各ビューモデルクラスDataTemplateのメソッドでプログラムで設定するSetResult()ことです。これは、処理が正常に完了したとき、またはエラーが発生したときに呼び出されます。その中で、リターン コードを確認し、成功/失敗の結果に応じてDependencyPropertyプログラムで設定することができます。DataTemplate唯一の問題は、方法がわからないことです
DataTemplateC# コードを使用するだけでリソースを取得しResourceDictionaryます。ウィンドウのコード ビハインド .xaml.cs ファイルではなく、viewmodel クラスからこれらすべてを呼び出すことに注意してください。Windowビューモデル クラスへのハンドルのみを持っている
ListBoxItem場合は、それを含む への参照を何らかの形で取得し、プログラムDataTemplateでこのコンテナに を設定します。
誰かが私を正しい方向に向けることができますか?