那麼如何顯示複雜的聚合視圖模型其模型之間有相互關係?MVVM - 工作區中的幾個工作區似乎沒有意義
NO WPF弟子曾經談到的是,猜測爲什麼它不可能...
你認爲那是真的嗎?
不理解我?
看:一個CustomerViewModel有許多OrderViewModel和一顆顆ProductViewModel。
你有3工作區進入新的數據對所有3的ViewModels,你有3列表框/ combobo /數據網格以多選類型=> customerVM s, orderVM
S和productVM`s的集合。
每當添加新的客戶/訂單/產品時,用戶界面對用戶而言都不需要關閉/打開工作空間,對於用戶而言,這種典型的LOB應用程序要求如何實現?
編輯:
你有MVVM型工作空間的集合。 每個ViewModel都可以是一個Workspace,因爲它來自WorkSpace類。 工作區集合綁定到ItemsSource afair josh smith示例。
聲明:我想用古爾德成熟的Windows窗體的用戶界面沒有關閉的的ViewModels ... 問題:MVVM只能與工作空間(可關閉的並不重要...)工作,因爲一個CustomerviewModel必須已經被實例化然後根據數據類型添加到綁定到itemsControl和datatemplated的工作空間集合中。
如果我沒有保存我的ViewModel實例的工作空間,我無法對它們進行數據定義,因爲MVVM中的ViewModel將模型作爲構造函數參數。使用CustomerViewModel的DataType DataTemplating UserControl將在XAML中引發異常!
現在看我的UI我想有:我沒有工作區,但3周的ViewModels = 3個用戶控件datatemplated手段3次大爆炸......
現在你知道爲什麼我不喜歡MVVM?它不是很好的想法,我尋找一個解決方案...
當然,我可以把我的ViewModels又名DataFormulars在一個ObservableCollection,但我不希望他們綁定到一個ItemsControl。我希望這3個UserControl在我的佈局中有一定的位置。與ItemsControl你有一個愚蠢的隊列,新的Dataformular只是添加和包裝,如果它不適合現有的空間。那是所有垃圾佈局設計/壞UI。
你現在得到我嗎?
當然,一個窗口可以有幾個控件與視圖模型的數據類型一起數據化。那不是我說的。 我的產品/客戶/訂單的主要細節 - -ViewModelcollection工作正常,沒有使用消息系統排序的解決方法。只需在您的VM集合上使用IsSynchronizedTocurrentItem並綁定到它們,一切正常。 更多關於編輯見上文。 – msfanboy 2010-05-07 21:39:27
你知道嗎,我想我是部分錯誤的。今天我檢查了Chinch,這是Sacha Barber的mvvm框架,它突然睜開了我的眼睛。 他不在他的CustomerViewModel中使用構造函數。我知道爲什麼;-) 他加載相關的訂單和產品LAZILY。 我這樣做EAGERLY綁定到我的組合框綁定到AllCustomersViewModel。 問題在於懶惰/渴望加載相關數據。 您的權利如果我使用延遲加載Dan我通過Messenger將選定的CustomerViewModel激發到另一個地方,例如在DataGrid中顯示相關的OrderViewModels。 – msfanboy 2010-05-08 18:50:29
我看到你寫作解決方案的第一段,因爲你告訴我在Chinch中看到的是什麼,看起來我改變了我的加載策略,所以我可以踢ViewMOdels構造函數hurrraaayy XD – msfanboy 2010-05-08 18:56:40