2012-01-16 14 views
5

リッチテキストボックスのドキュメントプロパティでデータを動的にバインドする方法。私はWpfでMVVMをC#で使用していますか?MVVMパターンのリッチテキストボックスにデータをバインドする方法は?

EDIT:

私は "codeproject.com/KB/WPF/BindableWPFRichTextBox.aspx" でこの例を試してみました。私はその例で何が起きているのか理解できません。私はWPFとMVVMの新機能です。

それは

try { 
    var stream = new MemoryStream(Encoding.UTF8.GetBytes(GetDocumentXaml(richTextBox))); 
    var doc = (FlowDocument)XamlReader.Load(stream); 
    // Set the document 
    richTextBox.Document = doc; 
} 
catch (Exception) { richTextBox.Document = new FlowDocument(); } 

エラーが似ている行でエラーを投げるの「ルートレベルのデータが無効です。ライン1、ポジション1」私はあなたが通常の文字列(サンプルテキスト)に結合されていると仮定し :私はあなたの質問が正しく解釈を願って、私はXAMLのテキストが

<FlowDocument PagePadding="5,0,5,0" AllowDrop="True" xmlns="schemas.microsoft.com/winfx/2006/xaml/… generated by app back-end</Paragraph> 
</FlowDocument>" But how to get this text? 
+3

あなたはまだ何をしようとしたことがありますか? –

+0

yeap .. "http://www.codeproject.com/KB/WPF/BindableWPFRichTextBox.aspx"でこの例を試しましたが、その例で何が起こっているのか理解できません。 WPFとMVVMの新機能です。 – Tanya

+3

[Richtextbox wpf binding]の複製が可能です(http://stackoverflow.com/questions/343468/richtextbox-wpf-binding) – Ray

答えて

1

ようにする必要があり見つかった「サンプルテキスト」

ように私は価値を与えていますあなたがcodeprojectから得たRichTextBoxで。これは動作しません。なぜなら、バインドしなければならないドキュメントがFlowDocumentであり、特定のフォーマットを持っているからです。文字列を割り当てると、文字列からFlowDocumentを作成しようとすると "data invalid"というエラーが発生します

XAMLまたはCodeBehindを使用してFlowDocumentを作成する方法についてのリンクがあります。 http://msdn.microsoft.com/en-us/library/aa970909.aspx

変換が実行されます。文字列表現から、実際のFlowDocumentが作成されます。あなたはこのようなVMの文字列にあなたのサンプルテキストバインドを表示したい場合は

だから、:

<FlowDocument PagePadding=\"5,0,5,0\" AllowDrop=\"True\" " 
       + "xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\">" 
       + "<Paragraph>Your sample text</Paragraph></FlowDocument>" 
関連する問題