依赖属性(Dependency Properties)和常规的 CLR 属性

在 WPF 中,有两种主要的属性类型可以用于数据绑定:依赖属性(Dependency Properties)和常规的 CLR 属性,后者通常与 INotifyPropertyChanged 接口结合使用。

依赖属性(Dependency Properties)

  • 依赖属性是 WPF 框架中的一个特殊概念,它们是专为WPF UI元素设计的属性类型。依赖属性是为了优化性能、提供更丰富的功能、以及支持数据绑定和样式设置而设计的。
  • 当您使用数据绑定将 UI 元素(例如 TextBoxButton 等)的属性(如 TextVisibility 等)绑定到数据源时,您实际上是在使用依赖属性。
  • 依赖属性内置支持数据绑定,包括自动监听和响应源数据的变化。因此,当依赖属性所绑定的数据发生变化时,不需要您手动触发属性变更通知。

CLR 属性与 INotifyPropertyChanged

  • 常规的 CLR 属性 是标准的.NET 属性,它们并不自动支持数据绑定的变更通知。为了使这些属性在数据绑定中能够更新UI,您需要实现 INotifyPropertyChanged 接口。
  • 当一个实现了 INotifyPropertyChanged 接口的属性值发生变化时,需要手动触发一个事件(PropertyChanged 事件),告知UI进行更新。这是通过在属性的 set 访问器中调用 OnPropertyChanged 方法来实现的。

总结

  • 如果您在自定义的控件或UI元素中创建新的属性,并希望它们能够支持数据绑定和自动更新,那么您应该创建依赖属性。
  • 对于在后台代码(如ViewModel)中使用的普通属性,您通常需要实现 INotifyPropertyChanged 接口,以便在属性值更改时通知UI。
相关推荐
听麟2 小时前
HarmonyOS 6.0+ 跨端智慧政务服务平台开发实战:多端协同办理与电子证照管理落地
笔记·华为·wpf·音视频·harmonyos·政务
bugcome_com3 小时前
C# 程序结构详解:从 Hello World 开始
c#
唐梓航-求职中4 小时前
编程-技术-算法-leetcode-288. 单词的唯一缩写
算法·leetcode·c#
听麟6 小时前
HarmonyOS 6.0+ APP AR文旅导览系统开发实战:空间定位与文物交互落地
人工智能·深度学习·华为·ar·wpf·harmonyos
bugcome_com6 小时前
阿里云 OSS C# SDK 使用实践与参数详解
阿里云·c#
懒人咖16 小时前
缺料分析时携带用料清单的二开字段
c#·金蝶云星空
bugcome_com17 小时前
深入了解 C# 编程环境及其开发工具
c#
wfserial19 小时前
c#使用微软自带speech选择男声仍然是女声的一种原因
microsoft·c#·speech
阔皮大师20 小时前
INote轻量文本编辑器
java·javascript·python·c#
聆风吟º21 小时前
CANN hccl 深度解析:异构计算集群通信库的跨节点通信与资源管控实现逻辑
人工智能·wpf·transformer·cann