Prism.Interactivity: 主要用来截取View即界面的一些处理,而这些功能通过vm 不好实现,只能用 CommandBehaviorBase 来截取处理,特别是在处理界面异常很有用。

定义如下:

public class ValidationExceptionBehavior : Behavior<FrameworkElement>

{

// 方法体

}

使用:

界面错误信息的处理:

<Interactivity:Interaction.Behaviors>                <common:ValidationExceptionBehavior></common:ValidationExceptionBehavior>

</Interactivity:Interaction.Behaviors>

键盘事件的处理

<Interactivity:Interaction.Triggers>

<Interactivity:EventTrigger EventName="KeyDown">

<Interactivity:InvokeCommandAction Command="{Binding ButtonKeyDown}"

CommandParameter="{Binding RelativeSource={RelativeSource  Mode=FindAncestor, AncestorType={x:Type Window}}}"/>

</Interactivity:EventTrigger>

</Interactivity:Interaction.Triggers>

注意界面要引用:

xmlns:Interactivity=http://schemas.microsoft.com/expression/2010/interactivity

Prism.Modularity: 模块定义,加载,管理

继承 IModule

public class PositionModule : IModule

{

// 其他内容

///必须实现 Initialize ,注册该模块中使用的服务,vm 等。提供主程序中使用。

public void Initialize()

{

.....

this.container.RegisterType<IOrdersViewModel, OrdersViewModel>();

this.container.RegisterType<IOrdersView, OrdersView>();

this.container.RegisterType<IOrderCompositeViewModel, OrderCompositeViewModel>();

this.container.RegisterType<IPositionSummaryViewModel, PositionSummaryViewModel>();

this.container.RegisterType<IPositionPieChartViewModel, PositionPieChartViewModel>();

this.regionManager.RegisterViewWithRegion(RegionNames.MainRegion,

() => this.container.Resolve<PositionSummaryView>());

this._ordersController = this.container.Resolve<OrdersController>();

}

}

主程序中使用方法:

在 Bootstrapper 中使用:

public class StockTraderRIBootstrapper : UnityBootstrapper

{

protected override void ConfigureModuleCatalog()

{

base.ConfigureModuleCatalog();

ModuleCatalog moduleCatalog = (ModuleCatalog)this.ModuleCatalog;                   moduleCatalog.AddModule(typeof(StockTraderRI.Modules.Position.PositionModule));                     moduleCatalog.AddModule(typeof(StockTraderRI.Modules.News.NewsModule));

}

protected override DependencyObject CreateShell()

{

// Use the container to create an instance of the shell.

Shell view = this.Container.TryResolve<Shell>();

view.DataContext = new ShellViewModel();

return view;

}

protected override void InitializeShell()

{

base.InitializeShell();

App.Current.MainWindow = (Window)this.Shell;

App.Current.MainWindow.Show();

}

protected override Prism.Regions.IRegionBehaviorFactory ConfigureDefaultRegionBehaviors()

{

var factory = base.ConfigureDefaultRegionBehaviors();

return factory;

}

}

这是通过代码实现的,也可以通过 xml 配置文件实现

protected override IModuleCatalog CreateModuleCatalog() {     return ModuleCatalog.CreateFromXaml(new Uri("/MyProject;component/ModulesCatalog.xaml", UriKind.Relative)); }

Prism.Interactivity 和 Prism.Modularity 介绍的更多相关文章

  1. Prism.Interactivity 之 PopupWindowAction 用法简记

    PopupWindow通过InteractionRequestTrigger(EventTrigger的派生类)侦听目标对象(InteractionRequest<T>类型)的Raised ...

  2. [Windows] Prism 8.0 入门(下):Prism.Wpf 和 Prism.Unity

    1. Prism.Wpf 和 Prism.Unity 这篇是 Prism 8.0 入门的第二篇文章,上一篇介绍了 Prism.Core,这篇文章主要介绍 Prism.Wpf 和 Prism.Unity ...

  3. 下载并安装Prism5.0库 Download and Setup Prism Library 5.0 for WPF(英汉对照版)

    Learn what’s included in Prism 5.0 including the documentation, WPF code samples, and libraries. Add ...

  4. WPF Prism MVVM 中 弹出新窗体. 放入用户控件

    原文:WPF Prism MVVM 中 弹出新窗体. 放入用户控件 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_37214567/artic ...

  5. 下载并安装Prism5.0库(纯汉语版)

    Prism5.0中包含了文档,WPF代码示例,程序集.本篇告诉你从哪里获取程序集和代码示例,还有NuGet包的内容. 对于新功能,资产,和API的更改信息,请看Prism5.0新内容. 文档 Pris ...

  6. 1: 介绍Prism5.0 Introduction to the Prism Library 5.0 for WPF(英汉对照版)

     Prism provides guidance designed to help you more easily design and build rich, flexible, and easy- ...

  7. Prism5.0开发人员指南内容 Contents of the Developer's Guide to Prism Library 5.0 for WPF(英汉对照版)

    The Prism for WPF guide contains the following topics: Prism指南包含以下内容: Download and Setup Prism 下载并安装 ...

  8. Prism5.0新内容 What's New in Prism Library 5.0 for WPF(英汉对照版)

    Prism 5.0 includes guidance in several new areas, resulting in new code in the Prism Library for WPF ...

  9. Prism开发人员指南5-WPF开发 Developer's Guide to Microsoft Prism Library 5.0 for WPF (英汉对照版)

    April 2014 2014四月   Prism provides guidance in the form of samples and documentation that help you e ...

随机推荐

  1. [Python] datetime.timedelta模块用法

    python使用datetime模块timedelta实现日期时间相加: python计算明天的日期: from datetime import datetime from datetime impo ...

  2. 如何针对 iPhone X 设计网站?

    在全面屏的 iPhone X 上,不需要而外的代码,Safari 可以非常完美的展示现有的网站.整个网站的内容都会自动地展示在一个“安全区域”内,并不会被四周的圆角或者“小刘海”遮挡住. Safari ...

  3. 「单调队列优化DP」P2034 选择数字

    「单调队列优化DP」P2034 选择数字 题面描述: 给定一行n个非负整数a[1]..a[n].现在你可以选择其中若干个数,但不能有超过k个连续的数字被选择.你的任务是使得选出的数字的和最大. 输入格 ...

  4. SpringBoot+Mybatis一级缓存和二级缓存详解

    本文主要介绍在SpringBoot项目中如何使用Mybatis的一级.二级缓存,为了演示方便,本文的数据库采用H2内存数据库,数据库连接池默认使用SpringBoot2.X自带的hikariCP. 正 ...

  5. day05 程序与用户交互和基本运算符

    程序与用户交互和基本运算符 目录 程序与用户交互和基本运算符 1.程序与用户交互 1.1什么是与用户交互 1.2为什么要与用户交互 1.3如何与用户交互 1.3.1格式化输出 2基本运算符 2.1算数 ...

  6. 正则表达式以及sed,awk用法 附带案例

    则表达式 基本正则 ^    $    [  ]   [^]   .   *    \{n,m\}   \{n,\}    \(ro\)\{2\}   \(\)   扩展正则 egrep grep - ...

  7. JVM 学习笔记(一)

    一:jvm架构图解 我们经常关注的jdk和jre如图所示: jre包含在jdk中,这里说一下jdk和jre的作用 JRE是Java Runtime Environment的缩写,是Java程序的运行环 ...

  8. UnsupportedClassVersionError的错误处理

    造成这种错误的原因是支持Tomcat运行的JDK版本与支持application运行的JDK版本不一致导致的. 解决办法: 将JDK版本改成一致. 步骤 1.Window ——> Prefere ...

  9. C# 人脸识别库 0.2

    ViewFaceCore 0.2 超简单的 C# 人脸识别库 前言: 首先谢谢大家对这个库的关注,前一篇博文得到了大家的 支持 和 Star,十分开心.本想尽快实现大家的期待的活体检测功能,但是前段时 ...

  10. oracle 在物理机上添加磁盘操作

    物理机上添加磁盘操作 注意:1)物理机上添加磁盘操作,不涉及到start_udev的动作.2)磁盘分区的操作,需要谨慎进行,核准无误后再操作. (1)查看磁盘名称命名 # su - grid$ sql ...