Prism框架的Regions使用
Prism框架的Regions,可以把用户控件、窗体等附加到主窗体指定的控件中。
【实战1】
1、新建Prism Blank App(WPF) 项目:Demo0810
Views文件夹处,鼠标右键——添加——新建项——Prism——Prism UserControl(WPF),名称默认
MainWindow.xaml.cs代码:
- using System.Windows;
- using Prism.Regions; //引入Regions
- namespace Demo0810.Views
- {
- public partial class MainWindow : Window
- {
- public MainWindow(IRegionManager regionManager) //定义变量
- {
- InitializeComponent();
- //将PrismUserControl1用户控件加载到主窗体的ContenRegion控件中
- regionManager.RegisterViewWithRegion("ContentRegion", typeof(PrismUserControl1));
- ////或者
- //PrismUserControl1 viewA = new PrismUserControl1(); //new出一个类的对象
- //_regionManager.AddToRegion("ContentRegion", viewA);
- }
- }
- }
PrismUserControl1.xaml代码:其他文件原封不动
- <UserControl x:Class="Demo0810.PrismUserControl1"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:prism="http://prismlibrary.com/"
- prism:ViewModelLocator.AutoWireViewModel="True">
- <Grid>
- <TextBlock Text="View A" FontSize="38" />
- </Grid>
- </UserControl>
或者MainWindow.xaml.cs不更改(保持极简纯粹),更改MainWindowViewModel.cs的代码:推荐
- using Prism.Mvvm;
- using Prism.Regions; //引入Regions
- namespace Demo0810.ViewModels
- {
- public class MainWindowViewModel : BindableBase
- {
- private string _title = "Prism Application";
- public string Title
- {
- get { return _title; }
- set { SetProperty(ref _title, value); }
- }
- public MainWindowViewModel(RegionManager regionManager) //定义变量
- {
- //将PrismUserControl1用户控件加载到主窗体的ContenRegion控件中
- regionManager.RegisterViewWithRegion("ContentRegion", typeof(PrismUserControl1));
- ////或者
- //PrismUserControl1 viewA = new PrismUserControl1(); //new出一个类的对象
- //_regionManager.AddToRegion("ContentRegion", viewA);
- }
- }
- }
【实战2】仿照实战1新建项目Demo08101、添加用户控件PrismUserControl1.cs
主窗体界面前端代码MainWindow.xaml:
- <Window x:Class="Demo08101.Views.MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:prism="http://prismlibrary.com/"
- prism:ViewModelLocator.AutoWireViewModel="True"
- Title="{Binding Title}" Height="350" Width="525">
- <DockPanel LastChildFill="True">
- <Button Command="{Binding ShowCommand}" DockPanel.Dock="Top" >Add View</Button>
- <ContentControl prism:RegionManager.RegionName="ContentRegion" />
- </DockPanel>
- </Window>
MainWindowViewModel.cs代码:其他文件原封不动
- using System;
- using Prism.Mvvm;
- using Prism.Commands;
- using Prism.Regions;
- using Demo08101.Views;
- namespace Demo08101.ViewModels
- {
- public class MainWindowViewModel : BindableBase
- {
- private string _title = "Prism Application";
- public string Title //数据属性
- {
- get { return _title; }
- set { SetProperty(ref _title, value); }
- }
- public DelegateCommand ShowCommand { get; set; } //命令属性
- IRegionManager _regionManager; //定义变量
- public void Show() //方法,展示用户控件到指定的主窗体控件中
- {
- _regionManager.RegisterViewWithRegion("ContentRegion", typeof(PrismUserControl1));
- ////或者
- //PrismUserControl1 viewA = new PrismUserControl1(); //new出一个类的对象
- //_regionManager.AddToRegion("ContentRegion", viewA);
- }
- public MainWindowViewModel(IRegionManager regionManager)
- {
- _regionManager = regionManager; //赋值
- this.ShowCommand = new DelegateCommand(new Action(Show)); //命令属性关联方法
- }
- }
- }
Prism框架的Regions使用的更多相关文章
- Prism框架研究(一)
从今天起开始写一个Prism框架的学习博客,今天是第一篇,所以从最基本的一些概念开始学习这个基于MVVM的框架的学习,首先看一下Prism代表什么,这里引用一下比较官方的英文解释来看一下:Prism ...
- Prism框架的Module(模块化)编程
Prism框架用的是新版本的,Prism7.1.关于其中的变动,感兴趣的参考https://www.cnblogs.com/hicolin/p/8694892.html 如何告诉Shell(我们的宿主 ...
- Prism 框架解读之一系列
名词解释 1.什么是IOC IOC是 Inversion of Control的缩写,多数书籍翻译成"控制反转". IOC 和依赖注入(DI) 所谓依赖注入,就是由IOC容器在运行 ...
- WPF Step By Step 系列-Prism框架在项目中使用
WPF Step By Step 系列-Prism框架在项目中使用 回顾 上一篇,我们介绍了关于控件模板的用法,本节我们将继续说明WPF更加实用的内容,在大型的项目中如何使用Prism框架,并给予Pr ...
- WPF Prism框架下基于MVVM模式的命令、绑定、事件
Prism框架下的自定义路由事件和命令绑定 BaseCode XAML代码: <Button x:Class="IM.UI.CommandEx.PrismCommandEx" ...
- 在Prism 框架中,实现主程序与模块间 UI 的通信
背景: 在模块的UI中包含 TreeView 控件,在该树形控件的每一节点前面定义了一个复选框,如图 需求: 在两个不同的应用程序中使用该控件,而它在不同应用程序中的外观则并不一致,按照本例,即一个显 ...
- Prism框架中加载类库中时其中第三方类dll提示无法加载程序集
Prism框架是采用一种依赖注入的方式动态加载程序集,能够在程序需要加载的时候将程序集注入到里面去,实现程序的热插拔效果,而且采用这种框架能够让我们进行一个大项目的独立开发,在最近的一个项目中在独立开 ...
- 项目中使用Prism框架
Prism框架在项目中使用 回顾 上一篇,我们介绍了关于控件模板的用法,本节我们将继续说明WPF更加实用的内容,在大型的项目中如何使用Prism框架,并给予Prism框架来构建基础的应用框架,并且 ...
- Prism框架在项目中使用
本文大纲 1.Prism框架下载和说明 2.Prism项目预览及简单介绍. 3.Prism框架如何在项目中使用. Prism框架下载和说明 Prism框架是针对WPF和Silverlight的MVVM ...
随机推荐
- python+pycharm+PyQt5 图形化界面安装教程
python图形化界面安装教程 配置环境变量 主目录 pip所在目录,及script目录 更新pip(可选) python -m pip install --upgrade pip ps:更新出错一般 ...
- Spring系列七:Spring 自动装配
相思相见知何日?此时此夜难为情. 概述 在Spring框架中,在配置文件中声明bean的依赖关系是一个很好的做法,因为Spring容器能够自动装配协作bean之间的关系.这称为spring自动装配. ...
- P1062 数列 题解
(题目为啥要强调用十进制输出呢,明明就是故意提醒) 分析一下样例 k=3k=3时,数列为:1,3,4,9,10,12,13..1,3,4,9,10,12,13.. 转换成三进制就是:1,10,11,1 ...
- HDU1285(拓扑排序裸题
..被多组测试坑了一波 #include<iostream> #include<vector> #include<queue> using namespace st ...
- AC自动机练习2:修改串
这道题的话用到了dp,一个比较简单的dp方程 1466: [AC自动机]修改串 poj3691 时间限制: 1 Sec 内存限制: 128 MB提交: 18 解决: 14[提交] [状态] [讨论 ...
- 发明专利定稿&递交申请啦,开心
也不想写些什么,只是想简单的分享一下当前的心情! 第一版到最后一版中间因为各种事情耽误,一直弄到现在.5月中旬找的专利代理局中间连续修改很多次,从大改到小改,再到微调真的是学习到了! 下面就是搞定&l ...
- Python3简易接口自动化测试框架设计与实现(上)
目录 1.开发环境 2.用到的模块 3.框架设计 3.1.流程 3.2.项目结构 5.日志打印 6.接口请求类封装 接口开发请参考:使用Django开发简单接口:文章增删改查 1.开发环境 操作系统: ...
- php 获取网址参数
echo "rewrite: ".$_GET["rewrite"]; echo "<br>SERVER_PORT: ".$_SE ...
- fastadmin 页面添加编辑日期时间
添加 <div class="form-group"> <label class="control-label col-xs-12 col-sm-2&q ...
- 【异常】hue:unknown database hue
1 hue error日志报错,找不到hue数据库 2 解决办法 删除hue服务,重新添加,再次在添加database阶段验证密码,test通过,再继续. 还有造成这个事情的原因,是自己移动了mysq ...