我有一個基於MVVM/WPF的應用程序,可以同時打開多個工作區(基本上包含一個TreeView),並在相同的數據樹上進行顯示和操作。我需要能夠展開和摺疊並獨立選擇每個工作區中的項目,並且希望能夠在兩個工作區之間拖放項目(例如移動或複製項目)。我還需要數據虛擬化,因爲只有在第一次擴展樹項目時纔會加載數據(在兩個視圖中)。還有一個工作區範圍的詳細信息視圖,顯示當前具有焦點的工作區的選定項目的詳細信息。工作區特定擴展和項目選擇也必須以編程方式工作。我應該如何在相同的數據上實現多個視圖?
你能爲基於MVVM的應用程序設計一個流行設計嗎?它包含了這些功能?我應該爲每個工作區創建一個單獨的ViewModel樹並實現Model-ViewModel映射器嗎?或者我應該只有一個ViewModel樹和兩個Views?細節視圖如何知道當前選定的內容以及哪些工作區具有重點? ...
因此,重新表述我的問題:每個視圖中顯示的模型實例實際上是相同的實例。但是,ViewModels應該是一樣的嗎?或者更好:我能否擺脫這種困境?
另請參見:是否有開放源代碼的應用程序,我可以學習,其中大部分功能? Prism或任何其他基於MVVM的框架能爲我完成大部分工作嗎?
是的,這是可能的。我有一個模型(數據樹),但它需要兩個相當獨立的視圖。我是否應該有兩個ViewModel樹(每個視圖一個)都指向相同的模型?或者我可以用2個視圖中綁定的一個ViewModel樹?我的問題是面向上述相當普遍的要求的一個總體「最佳實踐」。 – bitbonk