WPF属性

(一)依赖属性【源码-09DependencyObj
依赖属性就是一种可以自己没有值,并能通过使用Binding从数据源获得值(依赖在别人身上)的属性。拥有依赖属性的对象被称为“依赖对象”。与传统的CLR属性和面向对象思想相比依赖属性有很多新颖之处。
①:节省实例对内存的开销
②:属性值可以通过Binding依赖在其他对象上。
依赖属性对内存的使用方式
在传统.NET开发中,一个对象所占用的内存空间在调用new操作符进行实例化的时候已经决定了,而WPF允许对象在被创建的时候并不包含用于存储数据的空间(即字段所占用的空间)、只保留在需要用到数据时能够获得默认值、借用其他对象数据或实时分配空间的能力——这种对象就称为依赖对象(DependencyObject),而这种实时获取数据的能力则依靠依赖属性(DependencyProperty)来实现。在WPF开发中,必须使用依赖对象(DependencyObject)作为依赖属性(DependencyProperty)的宿主,使二者结合起来,才能形成完整的Binding目标被数据所驱动。

public class Student : DependencyObject
{
    public string Name
    {
        get { return (string)GetValue(NameProperty); }
        set { SetValue(NameProperty, value); }
    }
    public static readonly DependencyProperty NameProperty = 
        DependencyProperty.Register("Name",//string类型,用这个参数来指明以哪个CLR属性作为这个依赖属性的包装器
        typeof(string), //用来指明此依赖属性用来存储什么类型的值。
        typeof(Student));//用来指明此依赖属性的宿主是什么类型,或者说DependencyProperty.Register方法将把这个依赖属性注册关联到那个类型上。
}

image

posted @   李华丽  阅读(69)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
AmazingCounters.com
点击右上角即可分享
微信分享提示