
PRISM操作
文章平均质量分 91
Andrewniu
这个作者很懒,什么都没留下…
展开
-
[Prism练习] Prism下MVVM中命令绑定的CanExecute问题
近来练习Prsim下实现MVVM的方式。找到Command绑定有点问题,想拿出来讨论下。比如,一个新增资料的界面中,我想:用户必须将所有应填写的数据项填写完毕后提交按钮才可用。于是我们开始劵起袖子 建立WPF项目,NuGet添加对Prism的引用,创建相关文件夹建立一个简单的model和serviceView Code 1 using System; 2 using System.Coll...转载 2018-05-29 08:41:46 · 1543 阅读 · 0 评论 -
Prism研究(for WPF & Silverlight)9.Command批判
Prism中的Command是基于AttachedBehavior的。本章不讨论AttachedBehavior的原理,只涉及在项目中如何使用Command,而且只讨论Button上的Click事件。 对于Command,WPF和Silverlight不太一样,因为后者不支持静态类和静态成员,所以二者在实现上有所不同。本章默认介绍WPF的语法,捎带提及Silverlight的实现方式...转载 2018-05-25 08:51:37 · 327 阅读 · 0 评论 -
Prism研究(for WPF & Silverlight)8.Event机制
终于说到Event了。阅读本篇之前,请参阅我的另一篇关于事件的文章:CLR笔记:10.事件 Prism自带的示例与MVP模式的耦合性太大了,以至于看不出Prism框架中独特的Event机制。于是,我自己写了一个超级简单的Sample,以飨读者。 示例代码下载:code.zip 事件的实现很简单,以下是傻瓜化Step by Step: 1. 在公共类库中定义事件A...转载 2018-05-25 08:51:31 · 324 阅读 · 0 评论 -
Prism研究(for WPF & Silverlight)7.View Injection和View Discovery
一切从这里开始。Prism文档对于这两个概念的解释着实有些扯淡,甚至自相抵牾,还是不要看了,乖乖听额讲吧。 我们晓得,每个Module中,实现了IModule接口的Module类,都要实现该接口的Initialize方法,一方面要注册一些自定义的接口和实现了该接口的类,为接下来的依赖注入做准备;另一方面,就是为Region加载View并显示(初始化View)。 加载View的方式,分为...转载 2018-05-25 08:51:25 · 487 阅读 · 0 评论 -
(四)Market模块之TrendLineView分析
这一章我们添加Market模块到RI中。本章代码下载:MyRI_1.zip 需求分析: 要实现一个View,能根据PositionSummaryView的选取,而相应发生变化,我们将其命名为TrendLineView.xaml。这里使用到了一个现成的控件LineChart,它来自于StockTraderRI.ChartControls,我们只需要把它的ItemsSour...转载 2018-05-25 08:51:20 · 397 阅读 · 0 评论 -
(三)RI中的数据关系
RI中的数据都是基于XML的,散落在以下几个地方:StockTraderRI.Modules.Market模块:/Data:Market.xml和MarketHistory.xmlStockTraderRI.Modules.News模块:/Data:News.xmlStockTraderRI.Modules.Position模块:/Data:AccountPositions.xml 我将...转载 2018-05-25 08:51:14 · 951 阅读 · 0 评论 -
(二)RI主程序分析
本篇源码下载:MyRI_0.zip 继上篇介绍完RI的架构,我们来Step by Step实现这个系统。读者将跟随我在5个课程中完成它。 本篇只是搭建一个壳,包括主应用程序Shell,公共类库Infrastructure,以及4个暂时没有任何功能的Module,最终的效果是,通过Shell加载并运行这4个Module。 本章貌似没有什么难度。首先按部就班在主应用程序中...转载 2018-05-25 08:51:08 · 619 阅读 · 0 评论 -
(一)RI架构分析
StockTraderRI是Prism中自带的一个简易的股票模拟系统。这里我们只讨论它的WPF版本。截图如下: 让我们根据之前学习的Prism框架来进行分析,这个系统在结构上是由4个Module组成的,它们都位于下图的Module文件夹中,分别名为Market、News、Position和Watch: 我们可以从StockTraderRI项目的StockTraderRIBoot...转载 2018-05-25 08:51:04 · 767 阅读 · 0 评论 -
RI中的小Bug
1.残留红色框框,这个Bug有点BT。估计p&p小组看了后会吐血。 2. StockTraderRIBootstrapper中,模块加载的依赖关系不对 protected override IModuleCatalog GetModuleCatalog(){ var catalog = new ModuleCatalog(); catalog.AddModule(...转载 2018-05-25 08:50:54 · 282 阅读 · 0 评论 -
Prism研究(for WPF & Silverlight)6.StockTrader RI研究
这套项目源码是Prism框架自带的,涵盖了我们在进行Prism开发时所遇到的绝大部分实际问题。以下若干篇是我近半个月对StockTrader RI(简称RI)研究的系列文章集合,预计共有15篇左右,一并附属于《Prism研究》系列专题之下。 目录: 1.RI架构分析 2.RI主程序分析 3.RI的数据关系 4.Market模块之TrendLine...转载 2018-05-25 08:50:48 · 372 阅读 · 0 评论 -
Prism研究(for WPF & Silverlight)5.Module研究
终于要坐下来说一说Module的相关技术了。 本来不想讨论Module,因为一旦写好这些框框,以后就再也不会改变了。要知道,我们在Prism中更关心的是MVP模式的拆分。 Module相关技术包括两部分,一是如何加载Module,也就是在Shell的Bootstarpper中重写它的InitializeModules方法,从而把所有需要的Module加载到主程序中。二是如何...转载 2018-05-24 08:28:55 · 378 阅读 · 0 评论 -
Prism研究(for WPF & Silverlight)4.从Hello World开始(实战篇)
本篇将指导使用Prism框架创建一个WPF版本的Hello World程序。Silverlight版本的程序大同小异,不再敷述。 相关内容请参见文档P127-147,代码示例参加Quickstarts\ Hello World目录。 1.首先我们要准备Prism框架的6个dll,分别是:· Microsoft.Practices.Composite.dll· Microsoft...转载 2018-05-24 08:28:50 · 331 阅读 · 0 评论 -
Prism研究(for WPF & Silverlight) 1-3
Prism研究(for WPF & Silverlight)目录一. Prism概述二. Prism评估三. Prism文档导读四. 从Hello World开始五. Prism中的术语和概念六. Prism中的模式七. Module八. View九. Event十. Command十一. Service十二. Multi-Target十三. Acceptance Test十四. 自定义活...转载 2018-05-24 08:28:44 · 443 阅读 · 0 评论 -
Prism之Region(2)
在Prism之Region(1)中,介绍了一些Prism中页面组织以及切换的方式。这一篇将以一个很简单的示例程序来实践一下。源码下载下面是效果图:先说Log,Prism内置了ILogFacade接口,在Prism提供的QuickStart项目里的Modularity中,有一个CallbackLogger,这里我们直接拿过来使用。然后在PrismRegionShell中放一个TextBox,将log...转载 2018-05-29 08:42:35 · 892 阅读 · 0 评论 -
Prism之Region(1)
Prism可以帮助我们开发模块化程序,将程序分割成一个个独立的Module,分别进行开发。然后在程序运行的时候,将各个Module组合到一起,为程序提供各种各样的功能。通常来说,Module是一些视图和功能的集合,那么就需要一种办法来将这些视图以某种形式,在特定的时间展现出来。Prism通过Shell + Region来组织视图的布局,完成视图间的转换等。 如上图所示,Shell相当于ASP.N...转载 2018-05-29 08:42:25 · 2025 阅读 · 0 评论 -
从Prism中学习设计模式之Event Aggregator 模式
Event Aggregator 模式定义:渠道事件从多个对象通过一个单一的对象来简化clients的注册。结构图:Prism的Event Aggregator 模式:Event Aggregator允许多对象定位和发布、订阅事件。我们从Prism源代码中的EventAggregator和CompositePresentationEvent可以学习它是如何管理和传递事件消息的。 1 pu...转载 2018-05-29 08:42:07 · 1479 阅读 · 0 评论 -
基于EventAggregator的事件发布及订阅
EventAggregator简介EventAggregator是Prism中专门处理ViewModel与ViewModel之间事件传递的类对象,它提供了针对事件的发布方法和订阅方法,所以可以非常方便的来管理事件。下面的图就是其实现的一个比较简便的说明: 下面就以一个比较简单的例子来说明其用法,这里我们就在WPF的一个页面上输入用户信息,然后通过点击按钮,让用户信息在同一个页...转载 2018-05-29 08:41:59 · 635 阅读 · 0 评论 -
WPF中的MVVM模式
WPF中的MVVM模式 周银辉"设计模式"这样的话题似乎快被园子里的兄弟们写透了, 从简单的工厂到 MVC, MVP. 而关于MVVM似乎谈论得相对少些, 今天简单地说说. 值得声明的是: 这里仅仅谈论得是自己对别人发明的东西的一些理解, 可能有所偏误, 望理解. 另外, 搜索了一下,园子里 "cli...转载 2018-05-28 08:10:50 · 444 阅读 · 0 评论