wpf自定义控件绑定依赖属性

自定义控件绑定属性需要提前注册这个属性,同时注册对应的回调函数

例如,若要添加信号值属性

  1. 在自定义控件中添加保存数据的属性
public double SignalValue
        {
            get { return (int)GetValue(SignalValueProperty); }
            set { SetValue(SignalValueProperty, value); }
        }
  1. 在自定义控件中注册依赖属性
//依赖属性注册
//(string name, Type propertyType, Type ownerType, PropertyMetadata typeMetadata)
//参数分别对应依赖属性名,依赖属性数据类型,自定义控件类型,回调函数
public static readonly DependencyProperty SignalValueProperty = DependencyProperty.Register("SignalValue", typeof(int), typeof(PowerControl), new UIPropertyMetadata(1, ChangeSignal));

  1. 添加回调函数,在函数中执行对应的逻辑
 private static void ChangeSignal(DependencyObject obj, DependencyPropertyChangedEventArgs r)
        {
            //获取到具体的对象
            PowerControl control = (PowerControl)obj;
            control.SetClip(control.SignalValue);
        }
  1. 然后调用组件
<component:PowerControl SignalValue="{Binding signal}"/>
posted @ 2021-01-04 23:22  Hey,Coder!  阅读(2438)  评论(0)    收藏  举报
编辑推荐:
· AES 加密模式演进:从 ECB、CBC 到 GCM 的 C# 深度实践
· InnoDB为什么不用跳表,Redis为什么不用B+树?
· 记一次 C# 平台调用中因非托管 union 类型导致的内存访问越界
· [EF Core]聊聊“复合”属性
· 那些被推迟的 C# 14 特性及其背后的故事
阅读排行:
· 博客园出海记-开篇:扬帆启航
· 关于布尔类型的变量不要加 is 前缀,被网友们吐槽了,特来完善下
· 30 岁 Java 仍在 “霸榜“:开发者凭什么还在为它熬夜?
· C#中的多级缓存架构设计与实现深度解析
· GPT5写5000行代码,行不行?
点击右上角即可分享
微信分享提示