0
我有兩種形式(窗口)的應用程序 他們代表的正面和身份證 用戶輸入數據和打印機吐出來的東西,可以摺疊和層壓給予正面背面效果背面 我使用不同的視圖來顯示正面和背面,我想我的問題是我如何在兩個中使用相同的ViewModel實例(數據需要在打印前保存到數據庫) 或者我做這一切都錯了,我應該只是有一個視圖和顯示隱藏Front \ Back(我真的很討厭這個) 謝謝MVVM設計問題
我有兩種形式(窗口)的應用程序 他們代表的正面和身份證 用戶輸入數據和打印機吐出來的東西,可以摺疊和層壓給予正面背面效果背面 我使用不同的視圖來顯示正面和背面,我想我的問題是我如何在兩個中使用相同的ViewModel實例(數據需要在打印前保存到數據庫) 或者我做這一切都錯了,我應該只是有一個視圖和顯示隱藏Front \ Back(我真的很討厭這個) 謝謝MVVM設計問題
一般來說,你打算每個視圖需要一個ViewModel,因爲ViewModel的工作是要pr完全符合它所連接的View所需的數據。
因此,就你而言,聽起來你應該有一個View和ViewModel用於前端,一個View和ViewModel用於後端。
當用戶提交表單時,您可以通過多種方式保存數據。常見的模式是爲每個數據庫表建立Repository類。存儲庫類通常允許您選擇,插入,更新和刪除數據。因此,您可以將必要的存儲庫傳遞給每個ViewModel,然後當用戶提交時,讓ViewModel告訴存儲庫插入或更新數據。
在數據庫架構中,儘管前面和後面都放在同一行中,所以您可以這麼說,因此您建議基於id我合併存儲庫中的前後值。 – Rahul 2010-12-13 08:15:07
@Rahul,我建議創建一個「實體類」來保存你的表的所有數據。這個類應該有一個屬性對應於每一列。當您創建新的正面和背面ViewModels時,只需傳入實體類的新實例即可。由於您的兩個ViewModel共享實體類的一個實例,因此用戶填充數據時,此實例將保存表單兩邊的所有數據。然後,在提交時,您可以將實體類傳遞到存儲庫並執行Insert()。 – devuxer 2010-12-13 17:39:58
我喜歡共享實體的建議丹謝謝 – Rahul 2011-02-07 21:53:47