prism框架初始
prism
prism框架初始
wpf的启动项目继承了application
初始化
使app继承prismApplication重写其中的方法
createshell 通过容器拿到mianwindow
registertypes 依赖注入功能
命令的使用
xmal中 使用command="{binding xxx}" commandparamater="{binding xxx}"绑定命令和传递参数
cs中 commandName = new delegatecommand<>(methoudName) 当命令触发的时候自动调用方法
依赖注入
prism注入模块或者视图,这不仅限于本项目,还可以引用其他的项目
本项目中在启动项的容器中注入视图,接着引用
非本项目中,需要声明一个类继承Imoudle类,使其约定为一个模块,在项目中注册,然后在本项目的
模块化
模块化的是视图,(暂且),
可将本项目的视图注入到容器中,或者将其他项目的约定成模块,并在其项目本身中依赖注入视图,然后通过引入项目或者动态配置dll文件的方式注入项目中
引入模块 configuremodulecatelog方法中引入模块
动态配置 dll文件 createmodulecatalog
导航
在项目中的views和viewmodule是没有关联的
自动关联 引入prism:viewmodellocator.autowjireviewmodel="true" views 和 viewmodels的要一一对应 很少用到
手动 在注册导航的时候 containerRegistry.RegisterForNavigation<ViewA,viewAmodel>();
NavigationParameters keys = new NavigationParameters();
keys.Add("key","value");
regionManager.Regions["ContentRegion"].RequestNavigate(obj,keys);
regions 寻找到区域的名字 obj根据容器中的名称注入信息
keys 向导航传递参数值,以字典的方式
在viewmodels中实现 INavigationAware接口
public void OnNavigatedTo(NavigationContext navigationContext)
{
if (navigationContext.Parameters.ContainsKey("key"))
{
Title = navigationContext.Parameters.GetValue
}
}
在此方法中实现参数的传递和属性的赋值,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗