Полагаю, я неправильно понимаю вложенные свойства. Я пытаюсь преобразовать FlowDocument в RichTextBox в свойство строки HTML в моей модели представления. У меня есть два RichTextBox, которые используют мой класс RichTextBoxAssistant
(спасибо этому сообщению в блоге ):
<RichTextBox x:Name="rtb_description"
local:RichTextBoxAssistant.BoundDocument="{Binding MyVM.Description,
ValidatesOnDataErrors=True}"/>
<RichTextBox x:Name="rtb_descriptionHowTo"
local:RichTextBoxAssistant.BoundDocument="{Binding MyVM.DescriptionHowTo,
ValidatesOnDataErrors=True}" />
В моем классе RichTextBoxAssistant
у меня есть это свойство зависимости:
public static readonly DependencyProperty BoundDocument =
DependencyProperty.RegisterAttached(
"BoundDocument",
typeof(string),
typeof(RichTextBoxAssistant),
new FrameworkPropertyMetadata(
null,
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,
boundDocumentChanged
)
);
Проблема в том, что метод boundDocumentChanged
срабатывает, когда я изменяю значение в моем первом RichTextBox, rtb_description
, но не когда я изменяю значение в rtb_descriptionHowTo
. Когда я изменяю текст или делаю что-либо на rtb_descriptionHowTo
, я никогда не достигаю boundDocumentChanged
. Это результат того, что RichTextBoxAssistant
является статическим классом? Как я могу это исправить, чтобы я мог использовать RichTextBoxAssistant
с несколькими RichTextBoxes?