Dependency Property

原创 2007年10月03日 21:22:00

WPF引入了一种新的属性:Dependency属性。Dependency属性的应用贯串在整个WPF当中。Dependency属性根据多个提供对象来决定它的值。并且是及时更新的。提供对象可以是动画,不断地改变它的值。也可以是父元素,它的属性值被继承到子元素。毫无疑问,Dependency属性最大的特点就是内建的变化通知功能。提供Dependency属性功能主要是为了直接从声明标记提供丰富的功能。WPF声明的友好设计的关键是大量的使用属性。如果没有Dependency属性,我们将不得不编写大量的代码。关于WPF的Dependency属性,我们将重点研究如下三个方面:

1、变化通知功能:属性的值被改变后,通知界面进行更新。

2、属性值的继承功能:子元素将继承父元素中对应属性名的值。

3、支持多个提供对象:我们可以通过多种方式来设置Dependency属性的值。

public class TestDependencyProperty:DependencyObject
    
{
        
public static readonly DependencyProperty IsDefaultProperty;
        
static Button btn = null;

        
static TestDependencyProperty()
        
{
            TestDependencyProperty.IsDefaultProperty 
=
                DependencyProperty.Register(
"IsDefault"typeof(bool), typeof(TestDependencyProperty)
                , 
new FrameworkPropertyMetadata(falsenew PropertyChangedCallback(OnIsDefaultChanged)));
        }


        
public TestDependencyProperty(Button b)
        
{
            btn 
= b;
        }


        
public bool IsDefault
        
{
            
get return (bool)GetValue(TestDependencyProperty.IsDefaultProperty); }
            
set { SetValue(TestDependencyProperty.IsDefaultProperty,value); }
        }


        
private static void OnIsDefaultChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
        
{
            
if (btn != null)
            
{
                
if ((bool)e.NewValue)
                    btn.Background 
= new SolidColorBrush(Color.FromArgb(2556500));
                
else
                    btn.Background 
= new SolidColorBrush(Color.FromArgb(255,00222));
            }

        }

    }
 

相关文章推荐

Dependency Property 依赖属性

依赖属性就是一种可以自己没有值,并能通过使用Binding从数据源获得值(依赖在别人身上)的属性。拥有依赖属性的对象称为“依赖对象”。 WPF开发中,必须使用依赖对象作为依赖属性的宿主,使二者结...

#146 – Use GetValueSource Method to Find the Source of a Dependency Property Value

使用GetValueSource 方法获得依赖属性值的来源 有时候能够确定依赖属性当前值的来源是非常有用的。你可以使用DependencyPropertyHelper.GetValueSource 方...

Silverlight:Dependency Property(依赖属性)

学习SL/WPF,Dependency Properties(依赖属性)是一个全新(陌生)但又无法回避的概念。 http://www.wpftutorial.net/Dependen...

关于NSString @property的问题

  • 2014年07月06日 12:12
  • 2KB
  • 下载

【maven】dependency标签理解

在maven pom.xml文件中最多的就是dependency元素,我们用maven管理我们项目的依赖。这篇文章简单介绍dependency元素内部各个子标签的意义。下面是dependency标签的...

理解PHP依赖注入容器(dependency injection container)系列(一) 什么是依赖注入

本文是PHP依赖注入容器的实现这个系列的第一章。 今天,先不谈容器(container),首先用一些具体的例子来介绍依赖注入的概念,证明依赖注入这种模式可以解决哪些问题,同时能给开发人员带来哪些好处...
  • soonfly
  • soonfly
  • 2016年09月22日 21:08
  • 2850

property contract 1

  • 2011年07月01日 14:28
  • 13KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Dependency Property
举报原因:
原因补充:

(最多只允许输入30个字)