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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】