2017-08-14 18 views
-1

私はいくつかの調査を行ったが、私の問題に対する解決策は見つけられていない。 バインドされたテキストプロパティのコンテキストに基づいて、データを通常のテキストまたはリンクとして表示する必要があります。このリンクはクリック可能で、コマンドにバインドする必要があります。Wpf DataGrid - テキストコンテンツに基づいてテキストをリンクとして表示

この目標を達成するには、2つのデータテンプレートとテンプレートセレクタを作成する必要がありますか?それとも簡単な方法がありますか?

+0

あなたの提案は良いアプローチであり、それは一見思えるほど複雑ではありません。 – Mitya

+0

もちろん、まっすぐで簡単なアプローチとして、すべてのセルに対して2つのバージョンのテキストを作成できますが、そのうちの1つだけを「Visibility」プロパティーを使用して表示できます(小さなグリッドの場合、オーバーヘッドはあまり大きくありません)。 – Mitya

答えて

1

この目標を達成するには、2つのデータテンプレートとテンプレートセレクタを作成する必要がありますか?二つのデータテンプレートを使用する

あなたは例えば、DataContextの種類ごとにDataTemplateContentControlを使用することができます。:

<ContentControl Content="{Binding}"> 
    <ContentControl.Resources> 
     <DataTemplate DataType="{x:Type local:Type1}"> 
      <TextBlock>...</TextBlock> 
     </DataTemplate> 
     <DataTemplate DataType="{x:Type local:Type2}"> 
      <TextBlock> 
       <Hyperlink NavigateUri="http://stackoverflow.com">Link...</Hyperlink> 
      </TextBlock> 
     </DataTemplate> 
    </ContentControl.Resources> 
</ContentControl> 
関連する問題