2017-09-15 230 views
1

我有不同的UserControls,它們各有不同的ViewModels。但是我在MainViewModel中有一些「全局」變量,如Background-color或一些數據的數組,每個ViewModel都需要這些數據。「Global」WPF ViewModel屬性

如何告訴我的其他ViewModels用戶在MainView中設置了哪種背景顏色?

+3

背景顏色的東西比主題更好。它不屬於視圖模型。如果視圖模型領域中還有其他東西需要共享,您可以考慮添加一個負責該信息的[singleton viewmodel](https://en.wikipedia.org/wiki/Singleton_pattern)。 –

回答

2

您的視圖模型中不應該有樣式信息。

但是,如果你需要一些共享屬性,我建議使用服務模式;它包括創建一個Service類,它大致相當於一個單例,它在需要它的視圖模型中注入。

有關更多信息,請參見this StackOverflow question and its answers,或者只需搜索「服務層」和「依賴注入」。

+0

我會盡力,謝謝。不幸的是,我現在只有不到15個代表點,所以我無法贊成,因爲每次我發佈一個問題時,我都會得到一個冷靜的答案;我永遠不明白爲什麼...... –

+2

@MaxR。可能是因爲沒有顯示代碼。這裏有些人認爲沒有代碼=壞的問題,但我明白你的問題爲什麼不需要代碼。 – Kilazur