2017-01-16 98 views
1

我有一個WPF桌面應用程序。是否可以將ObservableCollection綁定到richtextbox

我正在使用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

是否有一個原因,你想使用RichTextBox而不是常規ItemsControl與自定義模板的項目? – RogerN

+0

嗨,我最初使用了一個列表框並使用了一個數據模板。這一切運行良好,但滾動有點'跳動'我希望使用rtb使用更流暢的外觀和感覺.. –

+1

列表框是跳動的,因爲滾動條控制索引位置到您的集合中。如果使用由ScrollViewer包裝的ItemsControl,則可以實現所需的平滑滾動。 – RogerN

回答

2

簡短的回答:編號

RichTextBox不是支持綁定到的ItemsControl。

你可能創建一個行爲,可以讓你綁定到一個文檔作爲這裏建議:

Richtextbox wpf binding

但是,如果你想在一個RichTextBox顯示從ObservableCollection東西,我覺得最簡單的方法是遍歷集合並以編程方式將塊添加到RichTextBox。如前所述,它不支持開箱即用的數據綁定。

+0

謝謝。這是我認爲我應該在一天中的其餘時間將此問題保留開放,然後再接受以防萬一有人解決。 ta –

+0

也許可以使用'IValueConverter'來安裝某些東西,但我懷疑它會非常有用。 –

相關問題