二、再來說說構造器:
如果使用nuget安裝的是完整的乙個是mvvm light 框架,而非 mvvm light libraries only的時候,總是會帶上viewmodellocator類,並且生成資源字典並加入到了全域性資源中。
實際上他就是乙個很基本的檢視模型注入器。在構造器中把使用到的viewmodel統一註冊,並生成單一例項。
然後使用屬性把它暴露出來,每當我們訪問屬性的時候,就會返回相應的viewmodel例項。
using galasoft.mvvmlight;
using galasoft.mvvmlight.ioc;
using microsoft.practices.servicelocation;
using mvvmlightdemo.model;
///
public class viewmodellocator
else
******ioc.default.register();
}///
/// gets the main property.
///
[system.diagnostics.codeanalysis.suppressmessage("microsoft.performance",
"ca1822:markmembersasstatic",
justification = "this non-static member is needed for data binding purposes.")]
public mainviewmodel main
}///
/// cleans up all the resources.
///
public static void cleanup()}}
注意的是,這邊把mvvmlight 自帶的******ioc作為預設的服務提供者,它是個簡易的注入框架。
為了統一化,並且在設計的時候可以看到看到viewmodel的資料,這邊用servicelocator 又將******ioc包裹了一層。
上面我們寫了乙個hello world,這時候就可以用這種方式改裝了。具體的改裝參考
當然如果想修改介面上顯示的內容可以修改viewmodel中建構函式的初始化內容。
WPF入門教程系列(4)
mvvmlight安裝之後,我們可以看到簡易的框架布局,生成了乙個viewmodel資料夾,viewmodel層的內容都放在這邊,除了main物件的viewmodel之外,還包含乙個viewmodellocator檔案,用來注入當前的viewmodel全域性例項。一 先來說說分層結構 如圖 1 vi...
WPF入門教程系列(5)
很簡單,僅僅是包含乙個實體物件,這邊注意的的是那他繼承了乙個父類 observableobject,這個父類的作用就是保證能夠檢測屬性是否被改變。其實在繼承的過程中,可能會遇到乙個問題 observableobject無法被繼承,解決方案是加乙個using galasoft.mvvmlight 命名...
WPF入門教程系列一
一 前言 公司專案基於wpf開發,最近專案上線有點空閒時間寫一篇基於wpf的基礎教材,wpf也是近期才接觸,學習wpf也是在網上查資料與微軟的msdn進行學習,寫本部落格的目為了溫故而知新把學習過程記錄下來,以備後查。學習wpf的基礎知識 1 wpf是微軟提供的一種用來開發 桌面應用 的技術 框架 ...