【Prism】MEF版EventAggregation】的更多相关文章

引言 第三弹是EventAggregation Demo的改造. EventAggregation  EventAggregation事件聚集是Prism框架中的通信实现.它可以在松散的模块或者窗体之间引发事件和传递参数,从而达到通信的目的.用法简单,完成三部曲即可. 1.继承CompositePresentationEvent<TPayload>,自定义事件类,如下 public class FundAddedEvent : CompositePresentationEvent<Fun…
Shell框架XECA shell.xaml主要起到是一个容器或壳的作用 <Window x:Class="XECA.Shell"      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"                xmlns:in…
引言 Pirsm框架是由微软P & P小组设计的,用于构建组合式的WPF企业级应用,支持两个IOC容器,分别为Unity和MEF.官方地址为http://compositewpf.codeplex.com/,在上面可以有最新的源码和Demo,其中多数Demo都是用Unity容器构建的,而本人比较喜欢MEF,打算把Unity的Demo全部改成MEF的,先从HelloWorld开始吧. 模块HelloWorldModule 我们需要将HelloWorld.xaml先导出,,如下 [Export(&qu…
引言 UIComposition原版Demo在PrismV5的解压包里面.原Demo用了.net4.5版本的DLL,我改成.net4.0的. RegionContext 这个Demo比之前那几个示例大概也只是多了一个新概念,那就是RegionContext. 众所周知,View的DataContext一般都是对应ViewModel,而Region很多时候也可以看成是一个View,所以Prism给了它一个RegionContext作为Region中多个子View的共享数据上下文. 一般用于Regi…
引言 接下来的是Commanding Demo的改造. DelegateCommand    WPF本身提供了一个RoutedCommand,然而没什么卵用.在Prism框架中提供了个更人性化的ICommand的实现--DelegateCommand,如下 public class ArticleViewModel : NotificationObject { private readonly ICommand showArticleListCommand; public ArticleView…
菜单管控模块EntityFW 菜单的加载采用MEF技术,程序实现思路: 1 .主菜单加载页面MainMenuView.xaml指向MenuRegion 2. 菜单Item点击及内容加载,采用订阅模式,即菜单item点击时发布消息,shell负责订阅并过滤加载子模块 MainMenuView.xaml <UserControl x:Class="EntityFW.Views.MainMenuView"       xmlns="http://schemas.microso…
在开发Silverlight程序的时候,经常需要在不同的组件间进行通信.比如点击一个button,可能就需要改变另一个控件的内容.比较直接的办法是使用事件,当然使用MVVM的时候也可以使用command,还可以定义一些全局的变量来保存一些信息等. Prism提供了几种用于组件间通信的途径,可以使用RegionContext使不同的视图共享数据,也可以借助于容器的力量来使用共享的service来进行通信,或者使用command等.除此之外,Prism还提供了一种基于事件的多播发布/订阅方式的通信机…
第一步:构建一个名为Bootstrapper的类作为引导程序. class Bootstrapper : MefBootstrapper { } 第二步:在MainWindow窗体中添加一个CoontentControl控件作为模块的容器,并在后台代码中添加[Export]属性以便MEF可以注入. 窗体代码: <ContentControl prism:RegionManager.RegionName="MainRegion" /> 后台代码: using System.C…
Related Attributes These attributes are under namespace System.ComponentModel.Composition Import The attribute can be used on fields, properties, parameters. E.g. If a property is defined with the attribute, the property will be created automatically…
Prism程序集为我们提供了DelegateCommand命令,使用该命令可实现窗口直接绑定.第一步:在ViewModel中定义一个DelegateCommand属性. public DelegateCommand<object> SaveCommand { get; set; } 第二步:添加Save和CanSave两个命令相关的方法. private void Save(object obj) { System.Windows.MessageBox.Show("save comm…