注册依赖属性,提示默认值类型不匹配属性的解决办法
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)));