2011-01-24 20 views
1

嗨,我目前在一個WPF應用程序我開發MVVM實現。我通過使用2個獨立的項目實現了ViewModel和Views。只有View是從ViewModel引用的。不過,我已經到了需要Settings類的信息(由Visual Studio使用項目屬性中的Settings對話框自動生成)到ViewModel的一個點。我該怎麼做,因爲ViewModel不應該引用視圖的類,而且Settings類有一個內部修飾符。MVVM和SettingsBase

需要在這一個你的建議......我使用的MVVM光具有定位器模式..

感謝

回答

0

創建這樣一個接口:

public interface IUserSettingsService 
{ 
    string FooSetting { get; } 
    bool BarSetting { get; } 
} 

創建該服務的實現將返回視圖項目中Settings類的值並將其註冊到服務定位器中。

然後,在您的視圖模型項目,您可以通過服務定位器得到它。類似這樣的:

var mySettings = ServiceLocator.Instance.GetService<IUserSettingsService>(); 
+0

感謝您的出發點,但您如何「創建此服務的實現將返回Settings類中的值」?當「我不被允許」引用設置類時,如何在ViewModel中執行此操作?我不知道我是否正確理解你的答案..也許一個示例項目會有所幫助.. – icube 2011-01-24 10:56:51