WPF入門教程系列(6)之構造器

2021-09-02 02:12:54 字數 1220 閱讀 2489

二、再來說說構造器:

如果使用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是微軟提供的一種用來開發 桌面應用 的技術 框架 ...