基于Silverlight的快速开发框架RapidSL新特性解析

基于Silverlight的快速开发框架RapidSL新特性解析,第1张

概述对sl传统的开发方式进行了集成和封装,核心模块基于MVVM,通用的CRUD ViewModel,只需要定制自己的Xaml View,提供了非常便捷的快速开发方式; 采用了Silverlight 5.0 + EF4.1 Code First + Ria Service SP2 + Ria Service Toolkit + Silverlight Control Toolkit + Light MV
对sl传统的开发方式进行了集成和封装,核心模块基于MVVM,通用的CRUD viewmodel,只需要定制自己的Xaml VIEw,提供了非常便捷的快速开发方式; 采用了Silverlight 5.0 + EF4.1 Code First + Ria Service SP2 + Ria Service Toolkit + Silverlight Control Toolkit + light MVVM;已经实现了轻量级的权限管理,上传模块,内容管理,作为实例,涉及到了sl开发的各种技术难点和技巧,既可以作为学习,也可以作为项目开发的原型

点击预览 | 源代码 

支持动态加载.xap,面向插件开发
RAPIdSL.SL.App.Portal提供主框架的UI逻辑,只需要开发自己的App,如RAPIdSL.SL.App.Main

 

然后配置菜单: 1  @H_301_35@< sdk:TreeVIEwItem  header @H_301_35@="产品管理"  IsExpanded @H_301_35@="True" @H_301_35@>
2                                  controls:adminMenuItem  ID @H_301_35@="1"  margin @H_301_35@="2"  Content @H_301_35@="ProductEdit"  NavigateVIEw @H_301_35@="RAPIdSL.SL.App.Main.xap/Product.Index"  VIEwPermission @H_301_35@="ProductVIEw" @H_301_35@/>
3                                  @H_301_35@="categoryEdit" ="RAPIdSL.SL.App.Main.xap/category.Index" ="categoryVIEw" 4                              @H_301_35@</ sdk:TreeVIEwItem @H_301_35@> NavigateVIEw="RAPIdSL.SL.App.Main.xap/Product.Index"将调用XapHost控件从服务端下载动态加载

 

NavigateVIEw="RAPIdSL.SL.App.Portal.admin"将调用当前程序集的控件

 

 

 XapHost控件提供动态下载.xap及加载

 

 1  @H_301_35@public XapHost( @H_301_35@string xapUri,  @H_301_35@string vIEwname =  @H_301_35@null)
 2         {
 3             InitializeComponent();
 4 
 5              @H_301_35@this.filename = xapUri;
 6 
 7              @H_301_35@var xapLoad =  @H_301_35@new XapLoader(xapUri);
 8             xapLoad.DownloadProgressChanged += (s, e) =>
 9             {
10                  @H_301_35@this.TotalSize = (e.TotalBytesToReceive * 1d /  1024 /  1024).ToString( " 0.00 ");
11                  @H_301_35@this.Percentage = e.Progresspercentage;
12             };
13 
14             xapLoad.LoadCompleted += (s,128)">15             {
16                  @H_301_35@this.Content = e.Element;
17             };
18 
19             xapLoad.LoadControl( @H_301_35@null, vIEwname);
20         }

 

对Resource的支持
找到所有标识有 StaticResourceAttribute的类,然后创建相关实例,并注入到Application.Resources,相当于在 App.xaml里手写资源

实现了资源管理器对资源进行注入管理

VIEw Code

键盘Enter键提交表单 使用AttatchProperty实现传统HTML表单的键盘Enter提交 GrID  x:name @H_301_35@="LayoutRoot"  core:AttachPropertIEs.submitbutton @H_301_35@=" {Binding Elementname=submit} @H_301_35@" 2  button  ="submit" ="登录" ="20,20,0"  padding  Command {Binding UserLogin} 3  GrID @H_301_35@>

 

具体绑定按钮和键盘事件

 1  @H_301_35@#region submitbutton AttachProperty
 2          @H_301_35@public  @H_301_35@static  @H_301_35@object Getsubmitbutton(DependencyObject obj)
 3         {
 4              @H_301_35@return ( @H_301_35@object)obj.GetValue(submitbuttonProperty);
 5         }
 6 
 7          @H_301_35@voID Setsubmitbutton(DependencyObject obj,  @H_301_35@object value)
 8         {
 9             obj.SetValue(submitbuttonProperty, value);
10         }
11 
12          //  Using a DependencyProperty as the backing store for submitbutton.  This enables animation, styling, binding, etc...
13          @H_301_35@Readonly DependencyProperty submitbuttonProperty =
14             DependencyProperty.Registerattached( " submitbutton ",255)">typeof( @H_301_35@object),255)">typeof(AttachPropertIEs),255)">new PropertyMetadata(submitbuttonChanged));
15 
16          @H_301_35@private  @H_301_35@voID submitbuttonChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
17         {
18              @H_301_35@var button = (buttonBase)e.NewValue;
19              @H_301_35@var form = d  @H_301_35@as UIElement;
20             form.KeyDown += (s, se) =>
21             {
22                  @H_301_35@if (se.Key == Key.Enter)
23                 {
24                     button.Focus();
25                      @H_301_35@if (button.Command !=  @H_301_35@null)
26                        button.dispatcher.BeginInvoke(()=>  button.Command.Execute( @H_301_35@null));
27                 }
28             };
29         }
30          @H_301_35@#endregion

总结

以上是内存溢出为你收集整理的基于Silverlight的快速开发框架RapidSL新特性解析全部内容,希望文章能够帮你解决基于Silverlight的快速开发框架RapidSL新特性解析所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1019081.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存