摘要: 本文对继承子类与扩展方法进行了一番比较,比较案例是对ObservableCollection进行排序.经过比较,作者认为继承和扩展方法两者实在是难分伯仲。前段时间,我做的一个项目有一个小小的需求,即:对范型集合类型ObservableCollection<T>进行排序。ObservableCollection<T>这个类型在WPF和Silverlight中非常有用,因为它实现了INotifyCollectionChanged接口,继而在进行数据绑定的时候,如果将ItemsControl的ItemsSource属性绑定到一个ObservableCollection< 阅读全文
posted @ 2011-08-21 19:39 huangliangjie 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 在这篇文章中,我将要介绍在Windows Phone 7开发环境中怎么去创建一个DataTemplateSelector的虚类和自定义一个CustomDataTemplateSelector。通常DataTemplateSelector提供一种基于数据对象和数据绑定的选择DataTemplate的途径。特别是在对于同类的对象有多个DataTemplate,并且能根据逻辑选择DataTemplate应用到数据对象上。简单的说,DataTemplateSelector允许我们编写一些逻辑去选择哪个DataTemplate运用到哪个特定的项上。甚至可以创建一个新的Template 。NOTE: Da 阅读全文
posted @ 2011-08-20 12:36 huangliangjie 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 于在过去的N年中,遇到了很多使用囧然不同风格的开发者,下面是我所知道的一些,你还知道其它的吗? 散弹枪编程 这种编程风格是一种开发者使用非常随意的方式对待代码。“嗯,这个方法调用出错了……那么我会试着把传出的参数从 false 变成 true!”,当然依然出错,于是我们的程序员会这样:“好吧,那我就注释掉整个方法吧”,或是其它更为随意的处理方式,直到最后让这个调用成功。或是被旁边的某个程序员指出一个正确的方法。 如果我们把一个正规的程序员和一个撞大运的程序员放在一起做程序,那么,那个正规的程序可以马上变得发疯起来,并且,可以把正规的程序员的智商降到最低。两个撞大运的程序员不应该在... 阅读全文
posted @ 2011-08-17 22:37 huangliangjie 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 今天在编写一个控件的样式的时候,碰到了如下的异常: ColorAnimation cannot be used to animate property Background due to incompatible type.这里是报异常处的XAML代码, <ColorAnimation Storyboard.TargetName="border" Storyboard.TargetProperty="Background" Duration="0" To="#FF6B6B6B"> <ColorAn 阅读全文
posted @ 2011-08-11 22:22 huangliangjie 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 在WPF , silverlight ,WP7中经常会用到List<T>和ObservableCollection<T>。这里简单讲一下他们之间的相互转换。List<T>List<T>代表的是强类型的Ojbect集合,可以通过索引访问并且提供了查找、排序以及操作此集合的方法。List基本上和ArrayList相同,它用数组的方式实现了接口IList并且他的大小可以根据需要来自动增加。List<T>的缺点:在使用ASP.NET开发时,我们简单的使用DataSource和DataBind来绑定数据,但是在SilverLight中就没有那么 阅读全文
posted @ 2011-08-10 23:13 huangliangjie 阅读(291) 评论(0) 推荐(0) 编辑
摘要: Justin James曾发表过一篇博文《10 tips for advancing from a beginner to an intermediate developer》,为我们分享如何才能完成程序员从初级到中级的蜕变,现将中文译文转载于此,供大家借鉴。 在一封与TechRepublic会员交流的邮件当中,他提到了面向程序员的博客、文章及杂志分成两类:面向初学者类(“hello world”这种类型的教程)以及面向专家类(MSDN杂志)。这个观点很好,有关程序员如何从初级跃升到中级的信息极少。以下是为了实现这种转变需要你去做的10件事。1.学习另一门语言 其实你学的是哪一门语言并没有关系 阅读全文
posted @ 2011-08-01 20:03 huangliangjie 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 正如我在上一篇博客中提到的(现在可以明确地告诉大家),我已经离开Google了。虽然我已经收到了很多不错的offer,但是还没有决定去哪里。在这段时间里从技术角度上说我不受雇于任何人,虽然也许这会让我和(前)同事或者老板关系有点紧张,但我觉得应该写一些关于技术上的有趣的事情。 Google确实是一家很酷的公司。不论是在公司内部或是外部,Google都做了很多让人赞叹的的事情。这里我想介绍一些不涉及商业机密,但鲜为外人所知的事情。 Google的代码之所以优秀原因其实很简单:他们非常重视代码审查。代码审查并不是Google独有的,它被公认为是一个很好的(提高代码质量的)手段,很多人已经在日... 阅读全文
posted @ 2011-08-01 19:55 huangliangjie 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 有时候在做silverligt, WPF, WP7完成xaml代码的编写后,会发现设计器会告知有个异常出现:但是VS并不提示在那儿错了。这时找出错误会很麻烦也很浪费时间。让人很郁闷。 经过多番曲折,终于发现在Blend打开然后F5运行,他会提示在那个地方发生了错误。这个可能是微软想让我们界面设计和逻辑分开,不过个人还是倾向于只用VS做东西。而且,同时打开VS和Blend我的本本表示压力很大啊。 阅读全文
posted @ 2011-06-06 19:19 huangliangjie 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 关于AG_E_PARSER_BAD_PROPERTY_VALUE 错误,估计做Silverlight都遇到过这个错误,一般都是出现在xaml文件中,有以下几种情况:1.xaml文件中有某些属性不合法,不受xaml 分析器支持2.在xaml文件中有某些方法定义没有被实现总之,如果出现这种错误,目前来说只能自己慢慢找了,一般xaml格式错误的比较多 阅读全文
posted @ 2011-06-06 14:10 huangliangjie 阅读(126) 评论(0) 推荐(0) 编辑
摘要: windows phone for silverlight 项目中不能直接把图片,视频,音频等文件放到MediaLibray 中,不过XNA的库里可以实现这个功能。1.首先要引用XNA的库 : using Microsoft.Xna.Framework.Media;2.定义一个MediaLibrary对象,指定图片文件.MediaLibrary library = new MediaLibrary();string lName ="/Images/image1.jpg";3. 声明一个存储文件流,检查文件是否存在. var myStore = IsolatedStorage 阅读全文
posted @ 2011-06-01 17:20 huangliangjie 阅读(177) 评论(0) 推荐(0) 编辑