2011-03-11 138 views
4

查看信息,讓我們假設我在WPF MVVM應用dragable節點。我需要加載並保存節點的位置及其邏輯。最簡單的方法是通過存儲庫將位置和邏輯一起保存在一個xml文件中。但是,這意味着我會在模型和視圖模型中查看信息。WPF MVVM:模型

有沒有關於此情形的最佳實踐方法,說不定我至今爲止還沒有考慮?

+1

爲什麼節點dragable?您想要存儲哪個「職位」信息?將分層信息(級別,兄弟)存儲在模型中並從視圖中創建圖形信息就足夠了嗎? – 2011-03-11 12:54:52

+0

節點及其連接表示圖形數據操作過程。用戶必須能夠將該過程可視化爲可變(類似於Visio)。我不得不保存畫布中的x/y位置,因爲我沒有創建位置和節點,層次結構也很靈活。 – ps23 2011-03-11 13:29:53

回答

7

如果您的應用程序關心它向用戶顯示的UI元素的定位,那麼我會說,這個定義定位數據是你的模型的一個非常合理的部分。

不要混淆真正的業務需求,從你的模型和的ViewModels解耦UI的理想選擇。例如,在像Visio這樣的應用程序中,可以說,頁面中對象的確切位置是一個「僅供查看的細節」,重要的只是對象的屬性及其之間的關係。然而,從用戶的角度來看,對象在工作區佈局非常重要。換句話說,它是你的數據模型的一部分。

+0

非常好,謝謝,這加強了我在保存模型中的數據的意義 – ps23 2011-03-11 13:30:47