C#WPF中的Prism基礎入門-------IOC容器的注冊 (個人筆記)


IOC容器的注冊
需要一個接口 還有一個實現
Public interface IInterface Public Class MyClass: IInterface
{ {
} }
實現繼承接口
還得去容器里面注冊
我們要再在APP.XAML.cs 的頁面 RegisterTypes 這個方法里面進行注冊
用他自己的 IContainerRegistry的Register方法 進行注冊 <IInterface,MyClass>();
MyClass是 IInterface的實現, IInterface是MyClass的父類


我們需要彈窗 可以直接New 但是我們需要交互 Prism框架幫我們處理好了

我們需要彈出的 View(用戶控件)和ViewModel 需實現Prism框架
我們在ViewModel 需要繼承一個 IDialogAware 並且實現他的接口
public string Title :窗口顯示的數據
public event Action<IDialogResult> RequestClose: 這是一個事件
CanCloseDialog(): 我們是否可以點擊關閉按鈕
OnDialogClosed():
OnDialogOpened(IDialogParameters parameters):
設置完之后 我們彈出的窗口就准備好了

彈出窗口之后 要在主窗口的 ViewModel的構造函數處 注入一個 IDialogService dialogService
並且在外面獲取這個 :IDialogService _dialogService;
之后在構造函數里面_dialogService = dialogService; 獲取了注入
在我們的DelegateCommand 所使用的方法處 將彈窗彈出
_dialogService.ShowDialog("這邊名稱和我們注冊的窗口名稱一致"); //如果注冊時候沒有指定名稱 那這邊就是類名
但是還有一個前提 需要告訴我們這個窗口 已經准備好了
所以還是得到APP.XAML.cs處 進行注冊 但不是使用Register 而是使用RegisterDialog
containerRegistry.RegisterDialog<注冊的窗口>();//我們這邊是注冊彈出窗口

但是我們彈出的窗口 他的大小是和內容大小一樣的 需要修改
第一種方式 : 通過樣式加載
在彈出的窗口的 Xaml頁面 寫一個Style 在里面初始化 Window的各種數值 Height width .....
還可以設置彈出窗口是否有無邊框
代碼:
<prism:Dialog.WindowStyle>
<Style TargetType="Window">
<Setter Property="Height" Value="500"/>
<Setter Property="Width" Value=" 500"/>
<Setter Property="WindowChrome.WindowChrome">
<Setter.Value>
<WindowChrome GlassFrameThickness="-1"/>
</Setter.Value>
</Setter>
</Style>
</prism:Dialog.WindowStyle>



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM