2009-03-10 54 views
1

WPF ListViewで項目を表示するときに、テキスト形式を適用する必要があります。テキストの書式設定は、テキスト内の特定の文字列で背景色を異なるように設定するだけではあまり意味がありません。ListViewでのWPFテキスト書式設定

テキストは、異なる列に表示されないため、ListView列のいずれかにスタイルを適用するオプションではありません。

答えは何とかListViewのTextBlockコントロール内でParagraphsまたはRunsを使用することですが、XAMLでその方法を見つけることはできません。私はこれまでのところ、私がやろうとしています何を示しているんだが、それがうまくいかないことは次のとおりです。

<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> 

段落または保持することができますいくつかの他のコンテナコントロールになるにバインドされているListDescriptionのprpoperty書式付きテキスト。

答えて

0

関連する質問に関する回答が見つかりました: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> 

そして私は私が持っているListViewコントロールにバインドするデータソースの:

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

純粋なXAMLではこれが可能ではないと思います。同じスタイルを使用して文字列全体をテキストブロックまたはRichTextBlockでフォーマットすることはできますが、部分文字列に異なる書式を適用するには、ユーザーコントロールまたは他の形式のコードロジック(値コンバータなど)が必要です。

関連する問題