摘要: DataGrid的Template(1) DataGrid的Template(2) DataGrid是Silverlight数据交互最重要的一个控件,基本上日常工作中都与其打交道,而运用Template则是必不可少的部分,前两篇已经简单的介绍了与 Template相关的内容,本篇将介绍在DataGrid中实现分组统计的功能。 默认情况下,我们使用分组功能可以实现如下效果: 而实际情况下,可能需要实现对分组的数据统计,如下图: 要实现这样的效果,需要修改DataGridRowGroupHeader的样式,在Blend中查看XAML,可以看到StackPanel,我们需要修改的就是这个地方: 我. 阅读全文
posted @ 2011-06-08 16:14 ringgo 阅读(2348) 评论(6) 推荐(0) 编辑
摘要: 第一篇中曾介绍了通过配置的方式进行处理,由于容易出错,本文将提供一种代码的方式,主要的思想是通过自定义特性,直接贴类图: 由于给出源码,对这每一个类就不具体的分析了,如果你对前面配置方式已经掌握了,理解代码应该不是难事。 在服务契约中,我们添加实现的WcfErrorBehavior,WcfSilverlightFaultBehavior特性 [WcfErrorBehavior] [WcfSilverlightFaultBehavior] public class TestService : ITestService { } 打开Web.config,可以发现并未对任何节点进行修改,运行时,可. 阅读全文
posted @ 2011-05-25 17:02 ringgo 阅读(711) 评论(2) 推荐(2) 编辑
摘要: 前两篇主要介绍了WCF与客户端的错误传输,在实际的项目中,我们需要对服务契约中的每一个操作都进行try-catch捕捉异常,通常我们会将文件通过日志记录下来, 当操作很多的时候,对每一个方法都添加Log处理程序是很不方便的,在ASP.NET中可以将其写在Application_Error中,WCF则提供了IErrorHandler类实现。 IErrorHandler接口定义如下,主要提供了2个方法,具体见MSDN namespace System.ServiceModel.Dispatcher { public interface IErrorHandler { void ProvideFa. 阅读全文
posted @ 2011-05-24 15:29 ringgo 阅读(1069) 评论(5) 推荐(1) 编辑
摘要: 上一篇简单介绍了配置应用程序使客户端获取WCF抛出的SOAP异常,但是这些SOAP异常信息只包含InnerException ,Message,StackTrace,但是在实际情况中,我们 可能需要提供更详细的信息,在WCF中可以发送给客户端未声明的和声明的两种类型的SOAP错误,上一篇文章实际上是使用了未声明的SOAP错误。 本篇在上一篇的基础上演示通过WCF提供的FaultContractAttribute声明服务操作中的错误: 1.自定义一个用于错误契约的自定义类型 [DataContract] public class DataAccessFault { [DataMember] p. 阅读全文
posted @ 2011-05-24 10:51 ringgo 阅读(1788) 评论(0) 推荐(1) 编辑
摘要: 在阅读本文前,你应该已经对Sl与WCF的编程模型有所了解。当使用WCF与Siverlight进行通信时,一旦服务端处理数据发生了异常,尽管Silverlight客户端可以使用 AsyncCompletedEventArgs.Error属性判断是否发生错误,但是由于默认情形下WCF的异常信息无法传递到客户端,这导致我们无法准确的判断错误的原因。 图1 关于这个问题,MSDN上已经对此进行了阐述:在 Silverlight 中创建和处理错误 ,这篇文章已经将原理解释的很清楚了。不过根据MSDN上的步骤, 在Sl应用程序中会遇到一些问题,本篇文章则带你按步实现Silverlight获取WCF的错误. 阅读全文
posted @ 2011-05-20 16:09 ringgo 阅读(3648) 评论(7) 推荐(3) 编辑
摘要: 最近忙着毕业设计的收尾工作,一转眼就快说结束了,不管这四年怎样走过来的,对未来依然充满希望与愿景。 这篇依然是关于DataGrid的Template中小问题的解决方案: 当点击DataGrid一行时默认会将其高亮显示,这时点击的单元格与当前行背景会有所区别,在只读模式下,可能需要隐藏这些细节,如下图1,2是修改前后的效果 很明显这时通过修改Cell的Style达到的效果 <Style x:Key="DataGridCellStyle1" TargetType="sdk:DataGridCell"> <Setter Property=&q 阅读全文
posted @ 2011-05-18 14:58 ringgo 阅读(1062) 评论(1) 推荐(1) 编辑
摘要: 最近Silverlight 5 Beta发布,作为专注于Silverlight的开发人员,我还是很高兴的,至少证明Sl依然还在完善,还在发展。 闲话少说,这篇帖子主要是解决DataGrid开发中常见到的问题: 当DataGrid出现ScrollView时,如果对其进行拖动,你会发现DataGrid中的CheckBox和Expander会发生错乱的情形 通过对DataGrid的Template中的ScrollView中添加一个DataGridRowsPresenter可以有效的解决该问题: <ScrollViewer > <sdk:DataGridRowsPresenter x 阅读全文
posted @ 2011-04-19 09:27 ringgo 阅读(1863) 评论(5) 推荐(1) 编辑
摘要: 进公司实习工作后,本人接触的第一个技术名语就是MVVM模式,从学习到运用,已经有大半年时间,这篇文章将简单谈谈个人在产品开发过程中使用MVVM模式的体会。 传统的WinForm和ASP.NET应用程序是基于事件驱动开发的,以ASP.NET为例,在实际开发中,*.aspx页面用于渲染HTML,*.aspx.cs页面用于实现服务端逻辑,在开发初期,这种方式显得方便快捷,但是这种高耦合性导致了后期维护的复杂性,一旦aspx变化,aspx.cs的代码同时需要改变,比如将aspx中的GridView控件以FormView控件进行替换,对应的aspx.cs文件中不得不进行大量修改。而MVVM模式在WPF. 阅读全文
posted @ 2011-04-08 14:03 ringgo 阅读(11054) 评论(14) 推荐(3) 编辑
摘要: Silverlight中使用MVVM(1)--基础 Silverlight中使用MVVM(2)—提高 Silverlight中使用MVVM(3)—进阶 Silverlight中使用MVVM(4)—演练 Silverlight中使用MVVM(5)-Command II Toolkit中AutoCompleteBox控件的功能非常强大,其用法可以参考AutoCompleteBox的基本使用这篇文章。 在实际的开发中,数据一般通过WCF异步传递的,要实现AutoCompleteBox的过滤数据,主要用到的是Populating事件和PopulateComplete方法 private void a. 阅读全文
posted @ 2011-03-30 10:41 ringgo 阅读(2750) 评论(3) 推荐(1) 编辑
摘要: 大约半年前,写了一篇把ASP.NET应用程序发布至IIS7的文章,因为SL4是宿主在ASP.NET页面上的,所以其部署是大同小异, 这篇文章主要记录下部署带有.svc,.asmx等文件的SL应用程序过程中遇到的几个问题 发布.svc的页面时,首先需要安装IIS中的WCF组件,这里网上已经有详细的步骤:IIS承载svc文件 问题1:404.17 Not Found,所请求的文件是静态文件 这个问题其实很普遍,几乎大部分人都会遇到,解决方法:安装IIS后安装.NET Framework 问题2:禁止浏览目录 解决方法:IIS7的一个明显的优势就在于页面下方提供了一些常见问题的解决方案, 点击“目. 阅读全文
posted @ 2011-03-16 09:47 ringgo 阅读(702) 评论(2) 推荐(0) 编辑
摘要: 最近使用Blend制作了一个下载动画,感觉很有意思,所以这篇给各位介绍下如何使用Blend制作一个简单的下载动画的步骤 首先拖出一个圆,参数如下: 选中椭圆后单击Properties面板,选择“Fill”,选择“线性渐变”画笔 选择工具箱中的 ,可以看到椭圆上出现一个渐变箭头。 按照Alt键,拖动渐变的中心点: 调整后,椭圆大约如上所示,下面继续添加长宽均为60,画笔为白色的圆形 选择这两个图像,在“对象”菜单中分别操作对齐|水平居中,对齐|垂直居中命令,这个时候,两者会重叠在一起 在“对象”菜单中,执行分组|Canvas命令,命名为loading 现在图像已经创建好了,开始制作一个简单的动. 阅读全文
posted @ 2011-03-11 11:02 ringgo 阅读(3449) 评论(5) 推荐(8) 编辑
摘要: Silverlight中使用MVVM(1)--基础 Silverlight中使用MVVM(2)—提高 Silverlight中使用MVVM(3)—进阶 Silverlight中使用MVVM(4)—演练 大约半年前,我接触了MVVM这个概念,经过一段时间的运用后,对MVVM已经有了更为深刻的了解,这篇文章将重新回头来看Command,因为Command是 实现MVVM中非常重要的一个环节。 在SL4中,只提供了对Button与Hyperlink的内置Command,简单的来讲,在SL中使用内置的Command有3个步骤: 1,实现ICommand接口的类 2,在ViewModel中创建一个IC. 阅读全文
posted @ 2011-03-07 09:54 ringgo 阅读(8868) 评论(6) 推荐(4) 编辑
摘要: 已经第5篇了,仍然希望自己坚持下去,最近园子里关于Silverlight的文章越来越多了,希望有更多的人推动这门技术的发展。 这篇文章将主要介绍下TreeView和ComboBox的数据绑定的简单应用 TreeView 关于TreeView的应用,这篇文章给出了一个很好的示例,但是它并不是MVVM方式下的,所以本篇文章关注下通过绑定数据方式显示Tree结构。 首先定义一个实体类: public class Employee { public string Name { get; set; } public int ParentId { get; set; } public int Id { . 阅读全文
posted @ 2011-02-28 10:04 ringgo 阅读(1037) 评论(1) 推荐(1) 编辑
摘要: 最近项目中用到了Linq中Except,Distinct,Left Join这几个运算,这篇简单的记录一下这几种情形。 Except 基础类型使用Linq的运算很简单,下面用来计算两个集合的差 int[] a = {1, 2, 3, 4}; int[] b = {2, 3, 4, 5}; var reslut = a.Except(b); result 用来返回a有,b没有的值,计算结果是1。 自定义类型实现Except class Employee { public int ID { get; set; } } 对于引用类型,若需要根据属性进行Except运算,则看下面简单的例子 List. 阅读全文
posted @ 2011-02-24 09:18 ringgo 阅读(11094) 评论(0) 推荐(1) 编辑
摘要: 又到开学季节,或许过了这次,人生再也没有开学的机会了,临近毕业的时候,才发现四年就快过去了,才发现有多想留住时间,先不感慨了,这篇继续记录几个小的Tips。 ItemsControl中添加ScrollViewer 修改ControlTemplate,将ScrollViewer添加至ItemsPresent中即可获取元素的相对坐标 最普遍的场景是获取子控件中相对父控件的的坐标 当子元素在父元素的左边或者上面,坐标值会是负数。 如果要获得绝对位置,那么计算元素相对根元素的位置 在某个场景中,我们需要获取某一个区域(点)内的对象,这可以使用Silverlight中的VisualTreeHelpe 阅读全文
posted @ 2011-02-20 15:47 ringgo 阅读(659) 评论(0) 推荐(1) 编辑
摘要: 这个系列,主要是将自己平时遇到的或者从网上看到的小知识整理下,好记性不如烂笔头,这样方便日后再碰到这些问题方便查看。 Silverlight插件居中显示 网上有很多方式,Silverlight插件是通过object/进行声明的,那么这里就用到CSS的概念了,直接对div的样式设置即可 这是我在实际运用中处理的方式,涉及到Css,不解释。动态加载dll Silverlight中支持应用程序缓... 阅读全文
posted @ 2011-02-01 10:27 ringgo 阅读(715) 评论(1) 推荐(0) 编辑
摘要: 这个系列,主要是将自己平时遇到的或者从网上看到的小知识整理下,好记性不如烂笔头,这样方便日后再碰到这些问题有所帮助,希望自己一直能坚写。 调用JS方法 实际上我接触Siverlight是从1.0开始的,那时候的交互全是用JS写,虽然Silverlight2.0后,支持托管API的编程模型,但是 实际上做Web开发与Js打交道是必不可少,所以Silverlight2以后的版本也支持用托管代码调用JS 主要的交互都是与System.Windows.Browser.HtmlPage这个类相关的,Invoke方法中,HelloWorld是我在前台用Js写的function名,后面则跟着参数。 触发M 阅读全文
posted @ 2011-01-24 08:51 ringgo 阅读(764) 评论(0) 推荐(1) 编辑
摘要: 到年底了,手头上的任务暂时也告一段落,公司的产品Web端最近升级到了SL4,终于可以完全脱离了用VS08开发时没有可视化设计器所受到的折磨。 利用年前这几天空闲时间,将平时遇到的问题和在网络上看到的整理整理,就算是对知识的整合吧。 DataPicker的水印处理 如果你想改变这里水印的内容,或许这并不是太容易实现的,在DatePicker控件内容有一个类型为DatePickerTextBox的部件公开了一个Watermark属性 那么改变这个水印最容易的方式,就是从继承DataPicker继承,并重写OnApplyTemplate()即可 把这个控件放到页面中,你会看到这样的效果 如果你想 阅读全文
posted @ 2011-01-21 08:40 ringgo 阅读(1066) 评论(1) 推荐(2) 编辑
摘要: 接触LinqTosql是很久的事情了,之前一直在拼接字符串,所以一开始就很喜欢这种ORM的方式,强类型用的爽啊,最近开始 改为学习ADO.NET 实体框架了:),概念上的东西网上都很多,当我想实现一个简单的外键表操作时,却没有一个较好的例子, 经过一段摸索后,将最简单的情形给贴出来。 本文用这2种方式通过一个简单的外键关系来演示Insert,Update,Delete操作 DB中建立2张表,这里只考虑1对多的关系: LinqToSql的方式: 生成的TestDB.dbml: Insert: 当提交Department时,会自动提交Employee Update: 这里修改Departm 阅读全文
posted @ 2010-12-23 15:12 ringgo 阅读(2917) 评论(11) 推荐(4) 编辑
摘要: 在Silverlight4版本中,RichTextBox这个控件算是很受期待的控件了,希望通过这篇文章让你对该控件有所了解。 在Sl中,有TextBox,TextBlock,RichTextBox这3个核心的文本控件,从表面上看,RichTextBox看起来和一个普通的TextBox并 没有太多的区别,实际上它提供了诸如格式化文本,段落,超链接,内联图像这些功能,它甚至可以显示任何UIElement,比如DataGrid。 MSDN有关于RichTextBox内容模型的一个关系图 RichTextBox的内容属性是Blocks,这是一个Paragraph的集合,这些Paragraph可以包含 阅读全文
posted @ 2010-12-21 11:14 ringgo 阅读(8837) 评论(6) 推荐(4) 编辑