0

私の推測では、添付プロパティを正しく理解していません。RichTextBox の FlowDocument をビュー モデルの HTML 文字列プロパティに変換しようとしています。クラスを使用している 2 つの 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、 に到達しませんboundDocumentChangedRichTextBoxAssistantこれは静的クラスの結果ですか? RichTextBoxAssistant複数の RichTextBoxes で使用できるように修正するにはどうすればよいですか?

4

1 に答える 1

0

ColinEは正しい考えを持っていました。最初の RichTextBox から添付プロパティを削除しようとしましたが、2 番目の RichTextBox の値を変更しても、boundDocumentChanged. ビューDescriptionHowToモデルのプロパティが、HTML 文字列ではなく null であることがわかりました。に初期化すると@"<html><body></body></html>"、動作が始まりました。

于 2010-12-20T22:32:37.013 に答える