本文想通过由浅入深的讲解让读者比较深的理解依赖属性.  首先,我们回顾一下依赖属性的发展历史. 最初,人们提出面向对象编程时,并没有属性这个说法,当时叫做成员变量.一个对象由成员变量和成员函数组成,如下: Public Class A{ Public int Index;//成员变量 Public void Fun(){} //成员函数} 后来,提出了对成员变量的改进,增加了get/set 方法,成员变量自然也叫属性了..net采用了这种方法: Public Class A{       Pri…
在这里讨论依赖属性实现原理,目的只是学习WPF是怎么设计依赖属性的,同时更好的使用依赖属性. 首先我们来思考一个简单的问题:我们希望能验证属性的值是否有效,属性变更时进行自己的处理.回顾一下.net的处理方式 Public Class MyClass{ private int index; Public int Index{ get{ return index; } set{ if(属性变更时){ //有效性检查 //处理或激发事件通知外部处理 } } }} 现在,我们希望设计一套属性系统,能验…
原文:WPF 学习笔记-设置属性使窗口不可改变大小 调整Windows下的ResizeMode属性: ResizeMode = NoResize Resize属性是控制Windows是否可以改变大小,怎样改变大小的属性.ResizeMode的所有枚举如下:   成员名称 说明   NoResize 无法调整窗口的大小.标题栏中不显示“最小化”和“最大化”按钮.   CanMinimize 只能最小化和还原窗口.同时显示“最小化”和“最大化”按钮,但只有“最小化”按钮处于启用状态.   CanRe…
前言 作为一只菜鸟,之前学了一段时间的WPF,但是没有总结,过了一学期发现好多东西都忘记了,很多东西还是需要记下来,以备后续复习. 数据绑定在事件中应用非常广泛,可以有效地减少代码量,那么什么是数据绑定?说的简单就是从源对象提取一些信息,将其用于设置目标对象的属性,这里有一点需要注意,目标属性需要是依赖属性(Dependency Property),而源对象可以是任何内容. 数据绑定可以分为元素到元素的绑定和元素到非元素对象的绑定. 元素到元素绑定 XAML绑定 首先来看一个简单的例子 <Gri…
数据绑定模式共有四种:OneTime.OneWay.OneWayToSource和TwoWay,默认是TwoWay.一般来说,完成数据绑定要有三个要点:目标属性是依赖属性.绑定设置和实现了INotifyPropertyChanged接口的数据源(数据上下文). OneTime:一次性有效,之后数据源的变化不会对目标属性有任何影响:当然,目标属性的改变也不对数据源有影响.代码如下 <TextBox Height="23" HorizontalAlignment="Left…
前一段半心半意地学习了一下WPF,是从控件入手的,发现巨容易,甚至有些无趣.昨天面试,被问到了很多WPF的特性的东西,直接就傻了.于是乎,还是要去深刻的学习一下WPF.刚刚试了一下数据绑定,几次都没有成功,后来发现是DataContext搞得鬼. 我暂时有两点结论: 1.如果没有显式设置上下文,那么数据上下文就是界面: 例如下边代码,textBox1绑定textBlock2的Text属性的时候,数据上下文就是Grid或者Grid父容器的DataContext,上下文中能用到就是界面元素的属性.…
概述: Windows Presentation Foundation (WPF) 提供了一组服务,这些服务可用于扩展公共语言运行时 (CLR) 属性的功能.这些服务通常统称为 WPF 属性系统.由 WPF 属性系统支持的属性称为依赖项属性. 依赖项属性提供用来扩展属性功能的功能, 最常用的莫过于“数据绑定”功能,依赖项属性可以通过数据绑定来引用值.数据绑定通过特定的标记扩展语法(在 XAML 中)或 Binding 对象(在代码中)来工作.使用数据绑定,最终属性值的确定将延迟到运行时,在运行时…
原文:WPF 学习笔记-在WPF下创建托盘图标 首先需要在项目中引用System.Windows.Forms,System.Drawing; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.…
Spring学习笔记之依赖的注解(2) 1.0 注解,不能单独存在,是Java中的一种类型 1.1 写注解 1.2 注解反射 2.0 spring的注解 spring的 @Controller@Component@Service//更多典型化注解,但是@Controller@Service建议使用 @service("personService")可以代替set get 方法,@Resource(name=personDao) @Autowired//按照类型匹配 @Qualifier…
SpringMVC:学习笔记(11)——依赖注入与@Autowired 使用@Autowired 从Spring2.5开始,它引入了一种全新的依赖注入方式,即通过@Autowired注解.这个注解允许Spring解析并将相关bean注入到bean中. 使用@Autowired在属性上 这个注解可以直接使用在属性上,不再需要为属性设置getter/setter访问器. @Component("fooFormatter") public class FooFormatter { publi…