注册依赖属性,提示默认值类型不匹配属性的解决办法

public static readonly DependencyProperty RichTextBoxWidthProperty;

RichTextBoxWidthProperty = DependencyProperty.Register("RichTextBoxWidth", typeof(double), typeof(TelerikEditor), new PropertyMetadata(713, new PropertyChangedCallback(RichTextBoxWidthPropertyChange)));

上面为注册代码。

错误提示为:调用构造函数时,提示:default value does not match type of property

检查发现,定义的回调函数 

        //
        // 摘要: 
        //     使用属性默认值和回调引用初始化 System.Windows.PropertyMetadata 类的新实例。
        //
        // 参数: 
        //   defaultValue:
        //     应用此 System.Windows.PropertyMetadata 的属性的默认值。
        //
        //   propertyChangedCallback:
        //     用于为属性更改行为进行调用的回调引用。
        public PropertyMetadata(object defaultValue, PropertyChangedCallback propertyChangedCallback);
其中第一个参数defaultValue为object对象,而我设置的713默认为int,所以要修改为:
            RichTextBoxWidthProperty = DependencyProperty.Register("RichTextBoxWidth", typeof(double), typeof(TelerikEditor), new PropertyMetadata((double)713, new PropertyChangedCallback(RichTextBoxWidthPropertyChange)));
原文地址:https://www.cnblogs.com/xlyg-14/p/4876631.html