我的猜测是我没有正确理解附加属性。我正在尝试将 RichTextBox 上的 FlowDocument 转换为我的视图模型中的 HTML 字符串属性。我有两个 RichTextBoxes 正在使用我的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
与多个 RichTextBox 一起使用?