.NET: WPF DependencyProperty

DependencyProperty and DependencyObject is the core of WPF data binding.

We can use this two class to binding one class instead of using INotifyPropertyChanged

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using System.ComponentModel;
 7 using System.Windows;
 8 using System.Windows.Data;
 9
10 namespace WpfApplication1
11 {
12     class Student : DependencyObject
13     {
14         public static readonly DependencyProperty NameProperty = DependencyProperty.Register("Name", typeof(string), typeof(Student));
15
16         public string Name
17         {
18             get { return (string)GetValue(NameProperty); }
19             set { SetValue(NameProperty, value); }
20         }
21
22         //public BindingExpressionBase SetBinding(DependencyProperty dp, BindingBase binding)
23         //{
24         //    return BindingOperations.SetBinding(this, dp, binding);
25         //}
26     }
27 }

while the other part can be the same as the code in ".NET WPF DataBinding".

In ease, we can key "propdp" and Tab key to edit every parameter in the function instead of key all the characters for the function.

Besides, there is one concept called Attached Properties that can attach new properties to existing class. This part can be referenced to the book

时间: 2024-11-02 14:52:36

.NET: WPF DependencyProperty的相关文章

wpf “{DependencyProperty.UnsetValue}”不是属性“Background”的有效值。异常

, 在wpf模板中, 有一个Background绑定的值不存在导致的异常, 我的是有这个没有导致的错误,  自己添加之后就没有了

WPF依赖属性DependencyProperty

写在之前: 依赖属性算是WPF醉醉基础的一个组成了.平时写代码的时候,简单的绑定很轻松,但是遇到复杂的层次比较多的绑定,真的是要命.所以,我觉得深刻认识依赖属性是很有必要的.本篇只是个人学习的记录,学习的博客是周永恒先生的<一站式WPF--依赖属性(DependencyProperty)>,这算是一个系列了,说的很详细.如果需要更好的学习,建议移步上述原文,受益匪浅. 什么是依赖属性? Windows Presentation Foundation (WPF) 提供了一组服务,这些服务可用于扩

WPF中DependencyObject与DependencyProperty的源码简单剖析

Windbg调试WPF的依赖属性中提到了wpf的DependencyObject中DependencyProperty是如何调试查看的. 从中我们看出DO(DependencyObject)与 DP(DependencyProperty)一些内部实现. 这篇文章我们就从源码入手, 让大家了解下依赖对象中依赖属性的值的获取和赋值. 我们先看个DP注册的例子: public class MyStateControl : ButtonBase { public MyStateControl() : b

WPF 通过名称查找属性(DependencyProperty)

使用名称来查找DependencyProperty. 如果有这样的需求,则是需要通过DependencyPropertyDescriptor来查找. 通常是使用附加属性或者依赖属性的方法. 下面给出附加属性的例子:  这个是注册附加属性,利用string来输入要查找的属性 public static readonly DependencyProperty AniInvokeParameterProperty = DependencyProperty.RegisterAttached("AniIn

WPF自定义控件与样式(11)-等待/忙/正在加载状态-控件实现

一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要有三种实现方式: 简单忙碌状态控件BusyBox: Win8/win10效果忙碌状态控件ProgressRing: 弹出异步等待框WaitingBox: 二.简单忙碌状态控件BusyBox 效果图: 通过属性"IsActive"控制控件是否启用,后台C#代码: /// <summary> /

对WPF依赖项属性的理解

属性和事件是.NET抽象模型的核心部分, 而WPF中则用更高级的依赖项属性(Dependency Property)代替了原来.NET中的属性.依赖项属性主要应用于自定义元素中,用于为自定义元素注入自定义的属性. 以下是定义和注册依赖项属性的方法: //声明并注册依赖项属性 FoodProperty public static DependencyProperty FoodProperty =      DependencyProperty.Register("Food", typeo

WPF控制动画开始、停止、暂停和恢复

1.闲言 好久也没更新一博客了,自己有点发懒,同时确实这几个月来也有点忙.风机监测软件,项目中,有这样一个小需求:正常风机在旋转的时候,上位机软要做一个风机的图片,让它不停地旋转,一但检测到下面风机停止了,上位机软件界面的风机图片也要跟着停止,并且风机图片的旋转速度最好是能够与真实的速度成比例关系,这样软件才更有逼格一点.就是实现这样一个效果,看下图1,左边是一个状态指示,没有做动画,只是做了一个图片的切换,效果还看得过去吧. 图1 风机旋转动画 2.动画制作 在WPF做动画前,首先超码得有3个

WPF实现窗口最小化到托盘,并且实现右击菜单

原版是从网上找了一位大神的,自己只是用了一点适合自己的. 具体实现 1.首先已经确认WPF中没有实现最小化托盘的类与方法,用到了winform中的程序集 using Drawing = System.Drawing;using Forms = System.Windows.Forms; 2.XAML的后代相应事件的Demo,只是为了看起来方便~!其中也包含了在任务栏中不现实图标,只在托盘中显示.双击实现窗口的还原.没用到大神写的,自己琢磨了个,令人想不到的蛋疼的后果还没出现,也就暂时这样了. 1

WPF标注装饰器

标注 在许多地方我们都会用到标注,比如在画图中: 在Office中: 在Foxit Reader中: 在Blend中: 等等. 简介 以前,因项目上需要做标注,简单找了一下,没发现适合要求的控件(包括Blend中的标注,标注的两个点距离是固定的).所以自己简单的写了一个.后来又私下修改了几次,基本完成了圆角矩形的标注. 效果图如下: 对应的XAML代码如下: <local:CalloutDecorator Margin="5" AnchorOffsetX="150&qu