惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
博客园 - Franky
The GitHub Blog
The GitHub Blog
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
B
Blog RSS Feed
云风的 BLOG
云风的 BLOG
小众软件
小众软件
罗磊的独立博客
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
美团技术团队
H
Hackread – Cybersecurity News, Data Breaches, AI and More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
C
Check Point Blog
WordPress大学
WordPress大学
博客园 - 【当耐特】
博客园 - 司徒正美
D
Docker

博客园 - guozili

分享12306抢票心得-终极秒杀思路篇 分享12306抢票心得-最终篇 分享12306全自动验证码识别提交,春运抢票准备时 分享“12306 P2P平台”创业Idea 分享12306秒票杀手锏源码 分享12306秒票心得及杀手锏 分享基于EF+MVC+Bootstrap的通用后台管理系统及架构 分享基于EF+WCF的通用三层架构及解析 基于Silverlight的快速开发框架RapidSL新特性解析 分享基于silverlight的仿“百度文库”的文档控件 分享基于silverlight的一个“树形结构图”控件 基于 Silverlight的快速开发框架RapidSL新版改进源码 基于Silverlight的快速开发框架RapidSL之开源 分享基于silverlight的一个大文件上传控件 抢火车票利器:分享一个抓取火车票转让信息的小程序 基于 Silverlight的精简框架之版本升级及使用 基于 Silverlight的精简框架之版本和控件更新 Silverlight project demos for MSRA in 2009,to look forward to silverlight's furture 异步编程练习
基于 Silverlight的快速开发框架RapidSL之MVVM解析
guozili · 2011-06-03 · via 博客园 - guozili

RapidSL框架基于WCF RIAService + EF + MVVM,UI 采用了DomainService + RiaControls + EasySL Controls,对sl传统的开发方式进行了集成和封装,核心模块基于View,ViewModel模型,基本上只需要修改View视图就可以完成 CRUD操作,提供了非常便捷的快速开发方式;

一. Model(Domain Model)

1. RIA Service端通过EF生成

2. 然后在sl项目选中“WCF RIA Services link”,


3. 会自动生成UI Model,省去了DTO,保存在Generated_Code


二. ViewModel

1. 使用了LightMVVM,继承自ViewModelBase

2.  作为前端绑定的业务实体如:

protected bool isShowDataFormPanel;
public virtual bool IsShowDataFormPanel
{
get
{
return isShowDataFormPanel;
}
set
{
isShowDataFormPanel
= value;
RaisePropertyChanged(
"IsShowDataFormPanel");
}
}

3. 作为视图绑定事件通知的RelayCommand

protected ICommand itemEdit;
public virtual ICommand ItemEdit
{
get
{
if (itemEdit == null)
itemEdit
= new RelayCommand(() =>
{
this.IsShowDataFormPanel = true;
});
return itemEdit;
}
}

4.注入ViewModel到App资源,[StaticResource(Key..., 和在App.xaml里写资源是一样的

namespace RapidSL.UI.ViewModels
{
[StaticResource(
"MainViewModel")]
public partial class MainViewModel : MyViewModelBase

5. 我实现了一个通用的带CRUD ViewModel:

三. View

1. 赋DataContext为对应的ViewModel

<UserControl.DataContext>
<Binding Source="{StaticResource Article_ItemViewModel}"/>
</UserControl.DataContext>

2. Binding和Command

<Button Command="{Binding ItemDelete}" IsShow="{Binding IsShowDataFormPanel, Mode=TwoWay}">

下载:http://easysl.codeplex.com/releases/view/26522
预览:http://rapidsl.guozili.25u.com/  (guest/guest  admin/admin  请不要删除资料)

RapidSL - a efficient and fast Infrastructure for silverlight development
Produced by xiaoyi
/www.guozili.25u.com/guozili@163.com