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("key");
}
}

在此方法中实现参数的传递和属性的赋值,

posted @ 2022-02-10 09:22  阿狸的萝卜  阅读(247)  评论(0编辑  收藏  举报