2010-03-14 46 views
0

數據層請建議在主題

討論的簡單場景MVVM設計(視圖模型的相互作用的模型)我有一個訂單類作爲一個實體。這個訂單實體是我的模型對象。

訂單可以是不同類型,讓它成爲

  • Ç

  • d

也訂單類可能具有共同的屬性,如名稱,創建時間等。

也基於訂單類型有不同的字段是不常見的。

視圖層

的視圖包含以下

  1. 主菜單
  2. 的ListView

主菜單包括下拉菜單按鈕,用於根據從下拉列表中選擇的類型創建訂單。下拉菜單包含訂單類型(A,B,C和D)。

根據訂單類型有不同的用戶控制。例如,如果用戶選擇創建類型A的訂單,則會彈出不同視圖和不同輸入字段。

因此,每個訂單類型都有四個用戶控件。

如果用戶從下拉列表中選擇A選項,則會創建類型A的訂單,反之亦然。

下面是包含到目前爲止由用戶創建的訂單列表的列表視圖。

編輯任何特定的訂單用戶可以雙擊列表視圖行。根據用戶在列表視圖中點擊的訂單類型,該訂單類型的視圖在編輯模式下打開。例如,如果用戶從列表視圖中選擇訂單類型A,然後在編輯模式下查看訂單類型A。

請在上述場景中爲視圖模型建議交互模型。

請原諒,如果查詢是非常基本的,因爲我是MVVM和WPF的新手。

+0

你打算在哪裏設置「編輯模式」?到目前爲止,您只能描述一個ListView ... – Schneider 2010-03-14 08:38:01

回答

0

而不是給你一個具體的設計,我會建議一種不同的方式來看問題。

讓你的xaml。現在,如果它能夠以任何方式組織以任何方式公開任何方法的數據,那會是什麼樣子?想象這些時,甚至不要考慮實體的真實結構。更多繼承?減?由你決定 - 對你的視圖最好。

好的,無論你剛剛描述的是你的ViewModel。爲此寫入公共API。然後,將它連接到實際的底層實體。

0

如何爲選定的訂單類型創建正確的視圖是您的主要問題?即下拉或ListView如何觸發顯示正確的Order視圖。

如果這就是你所得到的,那麼你會想要這樣的事情:當用戶點擊Orders列表(例如)時,你需要改變一些基礎的ObservableCollection併發送一些通知或迫使它在某種Workspace對象上執行某些操作。如果你還沒有閱讀,可能最好的方法是看Josh Smith的MvvmDemoApp以及他的article。從那裏他實現了WorkspaceViewModel的方式,因爲我認爲這可能是方法,或類似的東西,你是在你的訂單視圖用戶控件之後。 (如果我已經正確理解你的話)。