2012-09-16 85 views
0

我在打開的窗口中添加窗體以添加實體的新實例。爲了以後編輯這個實體,除了預先填充的字段之外,呈現相同表單的最佳方式是什麼?沒有骯髒的黑客(沿着設置狀態[添加/編輯])和違反單一職責原則,我發現很難重用相同的視圖和視圖模型。我目前正在考慮從包含所有重複虛擬機代碼的基本視圖模型繼承,但是我仍然堅持使用相同形式的2個版本。在保持乾爽的同時做到這一點的最佳方式是什麼?查看和查看用於添加和編輯實體的模型重用

我對WPF比較陌生,我使用MVVM Light框架。

回答

1

使用Automapper,它將基本上使您的實體和視圖模型之間的映射變得無痛苦。檢索有問題的實體,並將其映射到視圖模型以顯示在您的表單上。您可以創建一個新的視圖模型並將其綁定到您的視圖,或者只要清除現有的字段,就重新使用相同的視圖模型。

我建議在您的視圖模型中告訴您的用戶界面是否處於'創建'或'編輯'模式。在我看來,這並不違反單一的責任;視圖模型告訴UI如何顯示它自己。實際的編輯和創建功能應該包含在單獨的Command對象中。

http://automapper.org/