2010-12-20 77 views
0

我有一個MVVM WPF應用程序,它具有注入到視圖中的「用戶設置」。這些設置包含上次使用的搜索條件或數據網格上的列寬等。這很好,ViewModel不知道這些設置,因爲它們是View Specific,ViewModel可以被多個視圖共享。XAML MVVM多重綁定

這些值綁定到視圖的Xaml中。

然而,一些設置有干擾與視圖模型性能的水平。

一個例子:

視圖模型具有用於限制查詢帶回的結果的數目的public int MaxResults { get; set; }的性質。

當用戶改變,比如說,從100到50,理想情況下,我們希望這個保存在查看的設置這個值;從而使下一次查看時使用的值50而不是使用100

我的第一個問題:

我怎樣才能既綁定的視圖設置,並且視圖模型屬性相同的元素?我正在考慮一個多值轉換器,但我不確定是否有更好的方法來執行此操作。我需要兩種綁定方式,但也不會陷入任何可怕的更新循環。

我的第二個問題:

有時我會想視圖模型優先於由視圖設置提供的值。我想知道是否有人有任何建議允許一個綁定值優先於另一個。

任何意見/答案/問題非常感謝。

+1

堆棧溢出的問題是免費的 - 如果您有兩個問題,您可以免費打開兩個問題。 – 2010-12-20 23:20:39

回答

0

我沒有看到讓ViewModel不知道這些設置的問題。我會讓你的虛擬機控制這些用戶偏好,並讓視圖通過綁定來提取它們。

這有您從您的視圖模型具有這些首選項的控制,你可以測試你的用戶偏好正在通過你的單元測試正確裝入虛擬機的優勢。

記住,你的虛擬機是在你的模型的視圖,從而具有經由你的虛擬機加載用戶的喜好這裏不太可能是絕對意義上有邊緣情況下,像這些。