我在WPF列表框將包含的ResultsViewModel
項目,列表但這些對象的實際運行時類型可能是WPF設定的DataTemplate上ViewModel類編程
CalculateResultsViewModel
,ScenarioResultsViewModel
,GraphResultsviewModel
etc等,
所有這些擴展基抽象類ResultsViewModel
。
這些視圖模型中的每一個在ListBox
中的顯示都不同,因此需要不同的DataTemplate
。我只用XAML就可以做到這一點。難度在於,當視角模型是「處理」或者失敗時「,我需要它們顯示」處理「或」錯誤「的DataTemplate
,我只能使用Triggers
這樣做,但這意味着我可以「T使用DataTemplateSelector
或基本XAML的風格。
我能想到的(不乾淨,我知道)是設置DataTemplate
程序中的每個視圖模型類,這是的SetResult()
方法唯一的解決辦法是什麼被當被叫處理完成或者成功或者出現錯誤在那DependencyProperty
我可以看看返回代碼,然後根據成功/失敗結果以編程方式設置DataTemplate
唯一的問題是我無法弄清楚如何
獲得一個
ResourceDictionary
一個DataTemplate
資源只是用C#代碼 - 銘記林呼籲所有這一切都從視圖模型類,而不是窗口代碼隱藏文件.xaml.cs因此它不會訪問僅具有一個句柄視圖模型類的Window
性能,以某種方式獲得到包含它,然後編程方式設置此容器上的
DataTemplate
的ListBoxItem
的參考。
任何人都可以指向正確的方向嗎?