建立可扩展的silverlight 应用框架 step-5
时间:2022-04-22
本文章向大家介绍建立可扩展的silverlight 应用框架 step-5,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
整理Module
在第三节里边,建立了一个最简单的Module。这里要对其再进行整理。之前我写过一篇《简练的视图模型 ViewModel》这里就讲述了一个最最基本的运用视图与模型的例子。用模型来控制视图的呈现在很早的时候就提出来了。当然Prism这个框架也包括了这一点。这里就要为Module加入Model。 这里记录下整理步骤
1.在Module项目中新建立一个Models文件夹,用来存放数据模型。在文件下新建立一个HelloPrismModel类继承自INotifyPropertyChanged。
在构造函数中将视图作为参数传入将视图和模型相绑定。
public class HelloPrismModel : INotifyPropertyChanged
{
public HelloPrismView view { get; private set; }
public HelloPrismModel(HelloPrismView view)
{
this.view = view;
view.model = this;
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = this.PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
}
2.在Views文件下新建立一个IHelloPrismView接口。
在接口中声明其模型属性
public interface IHelloPrismView
{
HelloPrismModel model { get; set; }
}
3.修改原来的HelloPrismView.xaml继承自IHelloPrismView接口并且实现接口。
public partial class HelloPrismView : UserControl, IHelloPrismView
{
private readonly IModuleManager moduleManager;
public HelloPrismView()
{
InitializeComponent();
}
public HelloPrismView(IModuleManager moduleManager):this()
{
this.moduleManager = moduleManager;
}
#region IHelloPrismView Members
public HelloPrismModel model
{
get { return this.DataContext as HelloPrismModel; }
set { this.DataContext = value; }
}
#endregion
}
4.最后重构一下HelloPrismModule类
public class HelloPrismModule : IModule
{
private readonly IRegionManager regionManager;
private readonly IUnityContainer container;
private readonly IModuleManager moduleManager;
public HelloPrismModule(IUnityContainer container, IRegionManager regionManager, IModuleManager moduleManager)
{
this.container = container;
this.regionManager = regionManager;
this.moduleManager = moduleManager;
}
public void Initialize()
{
HelloPrismModel helloPrismModel = this.container.Resolve<HelloPrismModel>();
IRegion mainRegion = this.regionManager.Regions["MainRegion"];
object view = mainRegion.GetView("mainCurrView");
if (view != null)
mainRegion.Remove(view);
mainRegion.Add(helloPrismModel.view, "mainCurrView");
}
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法