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 ...
随机推荐
- C++ MinGW 配合 Sublime Text 搭建
本文主旨 使用MinGW 和 文本编辑器 Sublime Text,来搭建c++编译的平台. Sublime Text 安装 和 解除限制 http://rainss.cn/essay/1124.ht ...
- Mysterious Crime CodeForces - 1043D (哈希)
大意: 给定m个n排列, 求有多少个公共子串. 枚举每个位置, hash求出最大匹配长度. #include <iostream> #include <sstream> #in ...
- ubutnu18.04LTS 配置网卡新特性
在Ubuntu16的时候配置网卡信息都是在 /etc/network/interfaces 下的,但是到了18,配置文件位置改为了/etc/netplan/*.yaml,配置配置内容如下: netwo ...
- CA机构及SSL证书
互联网安全形势日趋严峻,企业重视自身互联网安全已成必然,SSL认证成大势所趋.要部署SSL证书最首先就是选好CA机构!其次选择适合自己的SSL证书!今天就来介绍一下如何选择CA机构及SSL证书! 首先 ...
- AutoCAD2013 以上利用AccoreConsole+ c# NetApi Windows Froms 封装
1# 封装类 public static class CmdHelper { /// <summary> /// 调用AutoCAD 安装目录下的AccoreConsole.exe来实现批 ...
- JavaScript中变量声明效率问题
1 var theString1 = "字符串1"; var theString2 = "字符串1"; var theString3 = "字符串1& ...
- 3.Linux常用基本命令
1.帮助手册 man --help 2.日期类 data,cal -------------文件目录管理类的命令 3.显示当前目录 pwd 4.cd切换目录 cd .. 返回上级目录 cd / ...
- mint-ui下拉加载(demo实例)
<template> <div class="share"> <div class="header"> <div cl ...
- 利用 Monitor.TryEnter 来规避 .NET 线程死锁的源代码
在开发多线程的应用程序时,我们会大量用到 lock (...) {} 块.如果 lock 的对象比较多,非常容易发生死锁.死锁的发生很难预料,而且一旦发生在界面线程上,界面就不再刷新响和应用户输入:如 ...
- CentOS 7自动以root身份登录GNOME桌面
CentOS 7自动以root身份登录GNOME桌面 修改配置文件 /etc/gdm/custom.conf,在 [daemon] 下面添加一下两行 AutomaticLoginEnable=true ...