我創建了一個Windows 8應用程序(但我懷疑任何使用Xaml的人都可以幫助我)。基本上歸結爲:一個包含產品列表的頁面,點擊產品打開詳細信息頁面。創建詳細視圖模型的最佳實踐(在Xaml中)
在我的作文根中,我解決了第一頁的視圖模型,並適當地設置了數據上下文,但我不確定在用戶選擇產品時將視圖模型傳遞到第2頁的最佳做法是什麼。
據我可以告訴我有以下選項: -
- 第一視圖模型需要能夠與.create(產品)的方法創建 2頁的圖模型的抽象工廠,這將被傳遞到第一個視圖模型的構造函數
- 讓第二個視圖模型實現一個帶產品屬性的接口,允許我使用屬性注入並將第二個視圖模型作爲參數傳遞給第一個視圖模型。
- 創建一個服務定位器,我知道它被許多人認爲是反模式。
我有些失落,但我懷疑抽象工廠是正確的路要走,我希望得到正確的結果,因爲對象圖實際上是這樣的(產品 - >步驟 - >指令),所以任何重新工作可能需要相當多的時間,但它基本上意味着我的視圖模型,如果我沿着抽象工廠的路線將需要三個抽象工廠,並獲得初始產品清單服務(然後這是一個代碼味道給出了它有多少個參數!)。
這就是我的想法。我正在使用MetroIOC,所以沒關係。我只是想知道,如果在構造器中查看具有如此大量參數的模型是設計不好的標誌。 –
恕我直言與依賴注入組合,更高數量的構造函數參數應該沒問題。無論如何你都可以在DI配置中設置它們。 當然,當數量大幅增長時,您應該重構。 –