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
}
}
在此方法中实现参数的传递和属性的赋值,