微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WPF---依赖属性一

一、概要

C#中属性是抽象模型的核心部分,而依赖属性是专门针对WPF的。

在WPF库实现中,依赖属性使用普通的C#属性进行了包装,使得我们可以通过和以前一样的方式来使用依赖属性

依赖属性优点如下:

  • 依赖属性加入了属性变化通知、限制、验证等功能
  • 节约内存:在WinForm中,每个UI控件的属性都赋予了初始值,这样每个相同的控件在内存中都会保存一份初始值。而WPF依赖属性很好地解决了这个问题,

     它内部实现使用哈希表存储机制,对多个相同控件的相同属性的值都只保存一份。

  • 支持多种提供对象:可以通过多种方式来设置依赖属性的值。

二、依赖属性的定义

定义一般遵循如下步骤:

  参考代码如下:

分享图片

 1    public class DataSource : DependencyObject
 2     {
 3         static DataSource()
 4         {
 5             // Using a DependencyProperty as the backing store for Title.  This enables animation,styling,binding,etc...
 6             TitleProperty =
 7                  DependencyProperty.Register("Title",typeof(string),typeof(DataSource),new PropertyMetadata("DefaultTitle",new System.Windows.PropertyChangedCallback(PropertyChangedCall)));
 8         }
 9         public static readonly DependencyProperty TitleProperty;
10         public string Title
11         {
12             get { return (string)GetValue(TitleProperty); }
13             set { SetValue(TitleProperty,value); }
14         }
15 
16         public static void PropertyChangedCall(DependencyObject d,DependencyPropertyChangedEventArgs e)
17         {
18 
19         }
20 
21     }
View Code

  可以使用如下快捷方式生成依赖属性

  在VS中输入“propdp”然后连续按两次Tab键。

三、依赖属性的优先级

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐