2010-06-10 43 views
2

我有點困惑,一個視圖模型的作用是什麼超出了綁定。我有一個銀色的菜單。該菜單具有x個在運行時確定的菜單項。我想補充的一個特點是每個菜單項在懸停時都有不同的文字顏色。視圖模型在數據綁定之外的作用?

是它的視圖的作用,有一個顏色選擇方法或應認爲處理這個在它後面的代碼?

回答

2

視圖模型用於通過數據綁定過程作爲一個「安全」的方式來允許你通過特定的控制,而不所見/濾波器/組的記錄進行排序(必須的)進行更改到實際的綁定數據集(也就是說,除非/直到你告訴它)。 (FMI讀取Bea's article here。)

我同意這裏的Goblin,因爲顏色等呈現方面可能最好在XAML中單獨保存,例如在該控件使用的DataTemplate中。

+0

兩個很好的答案,綠色勾號鏈接! – deanvmc 2010-06-10 21:34:33

5

通常情況下,如果可能的話,我會在XAML中保留着色/樣式 - 我對ViewModel的看法是,它負責以視圖可以消耗的方式從模型中提供所有數據(即非圖形的東西)。

如果它是確定的顏色複雜的邏輯,這是可以重複使用 - 我可能會嘗試把它放在視圖模型壽。

+3

我會嘗試確定抽象狀態每種顏色是代表和在VM執行邏輯來生成狀態,這可能再由觸發器或ValueConverter到顏色(這應該是在XAML)來渲染。指示燈不顯示紅色/黃色/綠色,它顯示停止/警告/去。如果它是一個更復雜的顏色(亮度傳遞值?),我更喜歡參數化的ValueConverter,因爲它保持View中的顯示邏輯,即使它不在XAML中。 – 2010-06-10 22:12:40

+0

我完全與丹布萊恩特在這裏。 – 2010-06-11 12:05:12

相關問題