Как уже сказано в заголовке, у меня возникли проблемы при использовании привязки данных с DependencyProperty. У меня есть класс с именем HTMLBox:
public class HTMLBox : RichTextBox
{
public static readonly DependencyProperty TextProperty =
DependencyProperty.Register("Text", typeof(string), typeof(HTMLBox));
public string Text
{
get
{
return GetValue(TextProperty) as string;
}
set
{
Console.WriteLine("Setter...");
SetValue(TextProperty, value);
}
}
public HTMLBox()
{
// Create a FlowDocument
FlowDocument mcFlowDoc = new FlowDocument();
// Create a paragraph with text
Paragraph para = new Paragraph();
para.Inlines.Add(new Bold(new Run(Text)));
// Add the paragraph to blocks of paragraph
mcFlowDoc.Blocks.Add(para);
this.Document = mcFlowDoc;
}
}
Я читаю свойство Text в конструкторе, поэтому оно должно отображаться в виде текста, когда строка привязана к свойству. Но хотя я связываю некоторые данные со свойством Text в xaml, я даже не вижу «Setter ...» - сообщение, которое должно отображаться, когда установлено свойство Text.
<local:HTMLBox Text="{Binding Text}"
Width="{Binding Width}"
AcceptsReturn="True"
Height="{Binding Height}" />
Если я изменю HTMLBox на TextBox, текст будет отображаться правильно, поэтому ошибка, вероятно, где-то в моем классе HTMLBox. Что я делаю не так?