2009-03-10 17 views
1

Ich muss einige Textformatierung anwenden, wenn Elemente in einer WPF-ListView angezeigt werden. Die Textformatierung ist nichts Besonderes, sondern setzt die Hintergrundfarbe für bestimmte Strings im Text unterschiedlich fest.WPF-Textformatierung in ListView

Der Text eignet sich nicht für verschiedene Spalten, daher ist es keine Option, einen Stil auf eine der ListView-Spalten anzuwenden.

Ich bin mir ziemlich sicher, die Antwort ist, irgendwie Absätze oder Läufe innerhalb eines TextBlock-Steuerelements in der ListView zu verwenden, aber ich kann nicht herausfinden, wie das im XAML ist. Was ich so weit gekommen, der zeigt, was ich zu tun versucht, aber das funktioniert nicht ist:

<ListView> 
    <ListView.View> 
    <GridView> 
     <GridViewColumn Width="600"> 
     <GridViewColumn.CellTemplate> 
      <DataTemplate> 
      <TextBlock> 
       <Paragraph> 
       <Binding Path="ListDescription" /> 
       </Paragraph> 
      </TextBlock> 
      </DataTemplate> 
     </GridViewColumn.CellTemplate> 
     </GridViewColumn> 
    </GridView> 
    </ListView.View> 
</ListView> 

Die ListDescription prpoperty, die gebunden wird eine Ziffer oder ein anderer Behälter Kontrolle wäre, die halten kann formatierter Text

Antwort

0

Ich fand die Antwort auf eine verwandte Frage: How would I databind a Paragraph to a TextBlock?.

<GridViewColumn Width="600"> 
    <GridViewColumn.CellTemplate> 
    <DataTemplate> 
     <ItemsControl ItemsSource="{Binding ListDescription}"> 
     <ItemsControl.ItemsPanel>     
      <ItemsPanelTemplate> 
      <WrapPanel/>      
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
     </ItemsControl> 
    </DataTemplate> 
    </GridViewColumn.CellTemplate> 
</GridViewColumn> 

Und für die Datenquelle ich an die Listview binden ich habe:

public InlineCollection ListDescription 
{ 
    get { return GetFormattedHistoryStatement().Inlines; } 
} 
0

Ich glaube nicht, dass dies in reinem XAML möglich ist. Sie können eine ganze Zeichenfolge mit dem gleichen Stil mit einem Textblock oder einem RichTextBlock formatieren, um jedoch eine andere Formatierung auf Teilstrings anzuwenden, und Sie benötigen ein Benutzersteuerelement oder eine andere Form von Codelogik, z. B. einen Wertkonverter.