我們連線了我們的意見,視圖模型「外部」,這意味着我們有以下類型的代碼的地方:WPF新的View VS FindResource
var viewModel = new MyViewModel();
var view = Application.Current.FindResource("MyView") as UserControl;
view.DataContext = viewModel;
也就是說各種各樣的意譯。我們這樣做是爲了讓包含所有視圖的dll可以在運行時切換出來。只要dll定義了一個名爲「MyView」的資源,該資源指向usercontrol MyView就很好。
我關心的只是確保FindResource不吃虧或者是一種有意義的方式遜色於只是做以下幾點:
var view = new MyView();
這可能與國際奧委會進行更換。 (我們不允許用戶切換使用哪個視圖DLL,它是在應用程序啓動時確定的。)
FindResource的一件事我發現,您可能必須使用x:Shared="False"
否則WPF會將您回到現有的實例,你必須確保它已經「初始化」回到它的原始狀態。
有什麼想法?