千万不要认为WPF中的数据绑定会很复杂,尽管它的确比Winform程序灵活多了,但其本质是不变的,特别是ComboBox控件,我们知道在Winform中对该控件的有两个专为数据绑定而设定的属性——DisplayMenber和ValueMenber,分别绑定用于显示和用于存放用户选择值两个字段,最典型的应用类似于key-value形式的数据字段,如学生表中的学号(ID)和学生姓名。其实,在WPF中原理都是一样的,来,我们一起动手玩玩。如何新建应用程序就不用介绍了,省略33个字。在窗口中拖放一个ComboBox控件和一个按钮,按钮用来检测所选择的值。切换到代码视图,定义一个Employee类和一个 Read More
posted @ 2011-11-06 21:55 javawebsoa Views(280) Comments(0) Diggs(0) Edit
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO.Compression; using System.IO; namespace gzipfile { public partial class Form1 : Form { ... Read More
posted @ 2011-11-06 13:34 javawebsoa Views(263) Comments(0) Diggs(0) Edit
本系列文章,是从我的QQ空间转过来的。上一文中,我们分析了依赖项属性的注册和定义方法,并解释了依赖项属性的注册过程,但是,有一个疑问会困惑着我们,既然依赖项属被声明为静态只读字段,那为什么它的值可以被改变呢?难道你不觉得很奇怪吗?微软的葫芦里到底卖的什么药呢?我们来看看。前文中我们提到过,设置依赖项属性的值使用SetValue方法,那好,我们就从SetValue方法入手。SetValue方法的定义如下:public void SetValue(DependencyProperty dp, object value){ base.VerifyAccess(); PropertyMet... Read More
posted @ 2011-11-06 11:31 javawebsoa Views(271) Comments(0) Diggs(0) Edit
在上一文中,我们用传统面向对象的方法来定义了一个类,而我们同时把该类的实例绑定到两个文本框,第一个文本框用于输入值,第二个文本框用于根据第一个文本框中的输入来取得属性值。在上例中我们已经明了,虽然能做到同步更新,但这同步更新并不是实时的。而是在控件失去焦点或点击按钮之后才发生,因为那个时候是重新进行了绑定,所以,一般的属性声明并没有实现实时更新。下面,我们把Student类进行改动,把Name属性改为依赖项属性。 public class Student:DependencyObject { //注册依赖项属性 public static readonly DependencyProperty Read More
posted @ 2011-11-06 11:26 javawebsoa Views(250) Comments(0) Diggs(0) Edit
本系列文章是从我的QQ空间拷过来的。依赖项属性可以称得上是WPF中比较难理解的概念,为了搞清楚这个概念,我都把.NET类库进行了反编译,但是,其结果我也是想到了的,微软不是傻子,.NET那么庞大,就算能被你反编译了,你也看不懂它的代码。所以说,经过我一番研究,虽然没有把.NET的每一行代码都弄明白,不过,黄天终不负有心人,依赖项属性的使用方法与基本原理,我可以说已经弄明白了,恰巧,前两天在网上看到一篇讨论依赖项属性的文章,写得还不错,作者估计也是一位高人,再加上我个人的研究,从实际应用的角度来说,我现在已经掌握了依赖项属性的使用方法了,不妨告诉你,其实很简单,可以这么说,整个WPF都很简单,和 Read More
posted @ 2011-11-06 11:22 javawebsoa Views(188) Comments(0) Diggs(0) Edit