前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于Cairngorm的Silverlight开发 - part2

基于Cairngorm的Silverlight开发 - part2

作者头像
用户1172164
发布2018-03-01 18:50:35
5330
发布2018-03-01 18:50:35
举报
文章被收录于专栏:我和未来有约会

搭建架构

由浅入深的来搭建架构。

从ModelLocator开始

ModelLocator只是Cairngorm中的一个部分,要使用它并不一定要把Cairngorm所有的架构都搭建起来,ModelLocator是可以单独来使用的。 ModelLocator是Silverlight程序中的一个数据的容器,所有的数据都存在于一个类中"singleton class"。这个类有且仅有一个实例。他使用的是设计模式中的单件模式。(这里我也不多说了,李老师已经说的很清楚了。ModelLocator,简约而不简单) 这里举例来说明一下ModelLocator具体的用法。一个最简单的例子,我想通过Silverlight中的Slider控件来控制一个矩形Rectangle的Width属性。 首先建立Silverlight项目并在项目网站上获取Cairngorm,添加对其的引用。在项目中新建立文件夹Model用来存放ModelLocator模型,建立MyModelLocator类并继承自ModelLocator,套用单件模式,并声明一个属性。

public class MyModelLocator : ModelLocator     {         private static readonly MyModelLocator _instance = new MyModelLocator();         public static MyModelLocator Instance { get { return _instance; } }         static MyModelLocator(){}         private MyModelLocator()             : base(){}         private double _width = 200;         public double width         {             get { return _width; }             set             {                 _width = value;                 NotifyPropertyChanged("width");             }         }     }

切换到Blend工具添加两个控件:Rectangle、Slider。并起好实例名称。换回到Vs工具,指定当前的page页面包含的数据为刚刚建立的MyModelLocator类,对两个控件进行数据双向绑定,绑定Rectangle的WidthProperty属性和Slider的ValueProperty属性到MyModelLocator的width属性上。

public partial class Page : UserControl     {         public Page()         {             InitializeComponent();             this.Loaded += new RoutedEventHandler(Page_Loaded);         }         void Page_Loaded(object sender, RoutedEventArgs e)         {             this.DataContext = MyModelLocator.Instance;             Binding bindwidth = new Binding("width");             bindwidth.Mode = BindingMode.TwoWay;             xRectangle.SetBinding(UserControl.WidthProperty, bindwidth);             xSlider.SetBinding(Slider.ValueProperty, bindwidth);         }     }

说了一堆理论上的东西还是送上视频直接些。  :)

基于Cairngorm的Silverlight开发 - part1

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2009-03-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 搭建架构
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档