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

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

依赖属性(Dependency Properties)

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

CLR 属性与 INotifyPropertyChanged

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

总结

  • 如果您在自定义的控件或UI元素中创建新的属性,并希望它们能够支持数据绑定和自动更新,那么您应该创建依赖属性。
  • 对于在后台代码(如ViewModel)中使用的普通属性,您通常需要实现 INotifyPropertyChanged 接口,以便在属性值更改时通知UI。
相关推荐
胖纸不争2 小时前
嫌桌面 Agent 太重,我“自己”写了一个
ai·c#·net core
当青春邂逅吉米多维奇6 小时前
C#图解教程(第5版) 同步方法
开发语言·c#
波力海苔夹心脆6757 小时前
C# 机器视觉实战:单相机引导机械手精准贴合,从拍照、偏差计算(平移+旋转)到坐标补偿全解
开发语言·经验分享·数码相机·c#·视觉检测·.net
Behavior9 小时前
国内下载使用 Unity 6000 踩坑点总结
c#·unity3d·游戏开发
czhc114007566310 小时前
一张图从哪来,一个判断往哪走
c#
预立科技10 小时前
CDN(内容分发网络)知识总结
网络·wpf·cdn
曹牧20 小时前
C#:未被引用的函数
c#
上位机妹子1 天前
EF Core 两种继承映射:每层次一张表(TPH)与每类型一张表(TPT)
数据库·c#·.netcore·ef core
小羊没烦恼!1 天前
jQuery1.5的改进细节
java·服务器·开发语言·前端·c#
下页、再停留1 天前
【C#桌面客户端系列学习-8】批量导出数据为csv格式
开发语言·c#·visual studio