2010-08-30 294 views
1

我想要做一些數據綁定的魔法。我有一個貨運視圖,列出貨件,並在列表中提供過濾和訂購功能。過濾器字符串框,Delivery Status過濾器(複選框)和Ordering Radiobuttons是數據綁定到ViewModel中的屬性。我想添加保存狀態的功能,我選擇通過在xml文檔中保存控制狀態來完成此操作。以前我以前做過這件事的時候沒有什麼問題,只是使用數據綁定來讀/寫值。將WPF控件綁定到多個源(不是傳統的多重綁定)

但是,現在我有一個困惑。我的過濾器控件當前是數據綁定到ViewModel中的項目。我可以編寫代碼在加載時將其數據綁定從xml更改爲ViewModel,反之亦然,但這會很麻煩。

是否有一種機制可以用來實現綁定到兩個相同的數據源並同時更新它們的能力?

回答

2

這聽起來像是視圖模型的問題。

爲什麼不將保存的值加載到視圖模型中,並讓視圖模型決定要公開哪些數據?

然後,該視圖不必管理數據。

+0

我想我會像你描述的那樣工作。對於過濾器相關項目,我將在VM代碼中存儲/檢索XML以保存會話之間的狀態,對於其他非ViewModel相關項目,我可以將數據綁定到XML數據源,全部保存在View close上。 – CodeWarrior 2010-08-30 19:51:53

1

沒有我知道的。我真的不會這樣做 - 如果你的datacontext是視圖模型,並且視圖模型具有過濾器的屬性,你幾乎肯定應該堅持並檢索相關的viewmodel狀態以保持狀態過濾器。試圖保存控件狀態,然後檢索它,設置它,並根據新的控件狀態設置視圖模型聽起來像更多的工作,更容易出現錯誤。