上一页 1 ··· 9 10 11 12 13 14 15 下一页
摘要: 引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。将方法作为方法的参数我们先不管这个标题如何的绕口,也不管委托究竟是个什么东西,来看下面这两个最简单的方法,它们不过是在屏幕上输出一句问 阅读全文
posted @ 2013-06-19 15:26 三叶草╮ 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 下面做一些简要的说明。1.单例模式(Singleton Pattern),又称作单件模式,当然也有一种诙谐的称谓:单身模式。在经典的GoF所著的《Design Patterns》一书中,对单例模式有着详尽的介绍,这本书网上有全文版本。2.单例模式的意图是保证一个类仅有一个实例,并且要提供一个全局访问点来访问这个实例。通常这个全局访问点是一个静态方法或者C#中的一个属性。3.在C#中,典型的单例模式实现方法可以如下:public class Manager{private static Manager Mgr;//constructor must be privateprivate Manage 阅读全文
posted @ 2013-06-18 11:51 三叶草╮ 阅读(1233) 评论(0) 推荐(0) 编辑
摘要: Predicate在集合搜索和WPF数据绑定中用途广泛,其调用形式: 调用形式:Predicate(Method)/Predicate(方法) 1.表示泛型,可以接受任何类型的参数 2.(Method)可以接受方法为参数进行传递,表示一个委托 ... 阅读全文
posted @ 2013-06-18 11:09 三叶草╮ 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 在Windows中,诸如窗体绘制等功能由GDI实现,放在操作系统内核中。Windows Forms在底层使用的是GDI+。GDI+是GDI的“面向对象包装”,使用C++实现。.NET Windows Forms应用程序中使用的GDI+其实是在C++实现的非托管代码之上又包了一层,从而让我们能使用C#这样的托管编程语言调用GDI+功能绘图。WPF底层使用的是DirectX,就是通常用来开发游戏的那个DirectX。WPF与Windows Forms这两者并没有什么关系。按照微软的意图,WPF是用来取代Windows Form的,所以最新的Visual Studio就使用了WPF开发界面,这是一个 阅读全文
posted @ 2013-06-08 10:58 三叶草╮ 阅读(323) 评论(0) 推荐(1) 编辑
摘要: RelayCommand本来是WPF下面用的一种自定义的command,主要是它用到了事件管理函数,这个SL下面是没有的。不过这部分代码如果修改一下,也可以在SL下面使用,和WPF下面的实现思路差不多。先看下RelayCommand的定义,一共有2种。 1 public class RelayCommand<T> : ICommand 2 { 3 public RelayCommand(Action<T> execute) 4 : this(execute, null) 5 { 6 } 7 8 ... 阅读全文
posted @ 2013-06-07 16:29 三叶草╮ 阅读(756) 评论(0) 推荐(0) 编辑
摘要: 查了不少资料,大概理清楚的就是有3种。当然类名可以自己取了,不过为了便于记忆和区分,还是和看到的文章里面用一样的类名。1.DelegateCommand2.RelayCommand3.AttachbehaviorCommand因为MVVM模式适合于WPF和SL,所以这3种模式中也有一些小差异,比如RelayCommand下面的CommandManager方法就是WPF下面的,SL下面无法使用,不过我认为这3种方法中的基本思路都如出一辙,都是出自那位外国牛人的文章里面。主要的区别在于和VIEW中的控件的绑定使用上。有点不同的attachbehaviorcommand是prism4里面的一种设计模 阅读全文
posted @ 2013-06-07 16:28 三叶草╮ 阅读(528) 评论(0) 推荐(0) 编辑
摘要: 在讲述自定义命令之前,先了解一下与命令有关的几个要素,就像我们常说的“记叙文六要素”一样,一个完整的命令应当包括:1、命令,这当然是核心部分了;2、命令源:命令是谁发出的;3、目标,命令作用在哪些元素上,如往文本框中粘贴内容,那么该TextBox就是命令目标;严格上说,命令是实现了ICommand接口的类,但是,在际使用中,我们不必这样做,一种有效的方法是在某个类中直接声明一个RouteCommand类的成员字段即可,一般使用Static关键字,这样可以使得命令只与类有关,而不必理会其属于哪个实例。下面,我们一起动手完成一个实例:1、新建一个WPF应用程序,如何新建?(略);2、布局好主窗体, 阅读全文
posted @ 2013-06-04 14:17 三叶草╮ 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 前言MVVM 就是 Model – View – ViewModel 三组功能(类)分割的设计模式。废话不多说,不知道的自己上网查。用 MVVM 我认为最大好处是能对 ViewModel 做单元测试。另外,MVVM 分工也比较明显,方便安排程序员分组分工进行项目,基本设计有了之后可以各自敲。这样的话,写出来,类(class)最起码有三个。比如 Window1 作为 View,Window1ViewModel 作为 ViewModel,实际业务类比如 Sales Order 销售订单作为 Model。View 不一定要是 System.Control.Window,UserControl 也可以 阅读全文
posted @ 2013-06-03 11:50 三叶草╮ 阅读(297) 评论(0) 推荐(0) 编辑
摘要: ViewModelBase和CommandBase代码的整理如下:1.ViewModelBase.cs[c-sharp] view plaincopyusingSystem;usingSystem.ComponentModel;usingSystem.Linq.Expressions;///<summary>///WPFMVVC设计模式ViewMode基本功能类///</summary>publicabstractclassViewModelBase:INotifyPropertyChanged,IDisposable{#regionPublicProperties// 阅读全文
posted @ 2013-06-03 11:48 三叶草╮ 阅读(900) 评论(0) 推荐(0) 编辑
摘要: Binding的亮点 在WPF中,Binding无处不在,关于Binding的漂亮用法有很多,其主要的设计亮点有二:Weak Event模式Converter 监听B的属性变化,A需要注册B的PropertyChanged事件,.net中事件是强引用,一旦A注册了B的事件,B就持有了一个A的引用。也就是说,如果A不注销B的事件,即使A已经空置,如果B对象存活,垃圾回收器仍不会回收A的内存,在使用中就造成了A的内存泄露。在Binding的使用过程中,可能会出现多级绑定,A->B->C,一个对象也可能绑定多个对象,在对象空置时注销绑定的监听事件是不太现实的,实现起来太过繁琐。这里就期望 阅读全文
posted @ 2013-05-31 17:44 三叶草╮ 阅读(388) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 下一页