2017-01-16 8 views
1

私はWPFデスクトップアプリケーションを持っています。ObservableCollectionをリッチテキストボックスにバインドすることは可能ですか

私はRTFコントロールを使用しています。

このコントロールをobservablecollectionにバインドします。

このモデルは、(例えば)これらのプロパティを持つことになります。

string name 
image Logo 
Brush MyColor 

だから私の意図は、レコードごとに名前、画像や背景色を表示することです。

できますか?現時点では

私はちょうど持っていることの背後にあるコードはすべてこれを行いますが、私はちょうどブロックに追加してい/ paragrapgh〜

rtb.Document.Blocks.Add(para); 

など

ビュー:

<RichTextBox ScrollViewer.VerticalScrollBarVisibility="Auto" x:Name="rtb" HorizontalAlignment="Left" Height="100" Margin="88,117,0,0" VerticalAlignment="Top" Width="341"> 
     <FlowDocument> 
      <Paragraph> 

      </Paragraph> 
     </FlowDocument> 
    </RichTextBox> 
+0

通常のItemsControlの代わりにRichTextBoxを使用し、アイテムのカスタムテンプレートを使用する理由はありますか? – RogerN

+0

こんにちは、私はもともとリストボックスを使用し、datatemplateを使用しました。それはすべてうまくいきましたが、スクロールはちょっと跳ね上がりました。私はスムーズなルックアンドフィールをrtbを使用して使用したいと考えていました。 –

+1

リストボックスは、スクロールバーがあなたのコレクションにインデックスされた位置を制御するので、代わりにScrollViewerでラップされたItemsControlを使用すると、スムーズなスクロールが可能になります。 – RogerN

答えて

2

短い答え:いいえ

リッチテキストボックスは、へのバインドをサポートするItemsControlではありません。

あなたはおそらく、ここで示唆したように、ドキュメントにバインドすることができます振る舞いを作成することができます。

Richtextbox wpf binding

しかし、あなたは、リッチテキストボックスにObservableCollectionから何かを表示したい場合、私は最も簡単な方法があることだと思いますコレクションを反復処理し、プログラムでRichTextBoxにブロックを追加します。前述したように、それはすぐに使用できるデータバインディングをサポートしていません。

+0

ありがとう。それは、誰かからの回避策がある場合にのみ受け入れる前に、この質問を残りの日に開いておくと思ったことです。 ta –

+0

「IValueConverter」を使ってリグを作成することもできますが、非常に便利だとは思えません。 –

関連する問題