我创建了一个与RichTextBox一起使用的用户控件。用户控件需要使用RichTextBox,所以我创建了一个依赖属性,如下所示:
public static DependencyProperty RichTextEditControlProperty;
static RichTextBoxToolbar()
{
RichTextEditControlProperty = DependencyProperty.Register("RichTextEditControl", typeof(RichTextBox), typeof(RichTextBoxToolbar), new FrameworkPropertyMetadata(null));
}
public RichTextBoxToolbar()
{
InitializeComponent();
}
public RichTextBox RichTextBoxControl
{
get { return (RichTextBox)GetValue(RichTextEditControlProperty); }
set { SetValue(RichTextEditControlProperty, value); }
}
但是,我不知道如何在XAML中设置此属性。我试过这样的
my:RichTextBoxToolbar Margin="0" DockPanel.Dock="Top"
RichTextBoxControl="{Binding , ElementName=headerText}"
其中headerText是RichTextBox的名称。
但是得到以下错误:
无法在类型的'RichTextBoxControl'属性上设置'绑定' 'RichTextBoxToolbar'。 '绑定'只能在a上设置 DependencyProperty的一个 DependencyObject的。 C:\ Users \ stefan.CORP \ Documents \ Visual Studio
有什么想法吗?
答案 0 :(得分:0)
静态DependencyProperty标识符中的属性名称不正确。
DependencyProperty.Register("RichTextEditControl", typeof(RichTextBox),
typeof(RichTextBoxToolbar), new FrameworkPropertyMetadata(null));
应该是RichTextBoxControl
而不是RichTextEditControl
。
或强>
将包装器CLR属性重命名为RichTextEditControl
:
public RichTextBox RichTextEditControl
{
get { return (RichTextBox)GetValue(RichTextEditControlProperty); }
set { SetValue(RichTextEditControlProperty, value); }
}
注册的属性名称和包装器属性名称应始终同步。