2011-01-13 4 views
0

私はそれが簡単な作業かどうか疑問に思っています。私は、ハイパーリンクになるように、データグリッド内のテキストの一部を持っている必要があります。 XMLDataProviderでコンテンツを生成しました。どんなアイデアも高く評価されています。データグリッド内の一部の列のコンテンツをハイパーリンクにする方法はありますか?

私のDataGridは以下の通りです。私は、WPFのツールキットで働いています:

<DataGrid x:Name="MainGrid" GridLinesVisibility="Horizontal" AutoGenerateColumns="False" RowHeight="20" ItemsSource="{Binding XPath=/ServicesTiles/Servers}" 
           HeadersVisibility="None" Margin="10,15,0,0" 
           HorizontalGridLinesBrush="{x:Null}" 
           BorderBrush="{x:Null}" 
           VerticalGridLinesBrush="{x:Null}" 
           Background="{x:Null}" 
           RowBackground="{x:Null}" 
           CellStyle="{DynamicResource DataGridCellStyle1}" 
           HorizontalAlignment="Left"> 
         <DataGrid.Columns> 
          <DataGridTextColumn Binding="{Binding [email protected]}" Foreground="#FF6E6E6E" MinWidth="160" /> 
          <DataGridTextColumn Binding="{Binding [email protected]}" Foreground="#FF6E6E6E" MinWidth="270"/> 
          <DataGridTextColumn Binding="{Binding [email protected]}" Foreground="#FF6E6E6E" MinWidth="220"/> 
          <DataGridTextColumn Binding="{Binding [email protected]}" Foreground="#FF6E6E6E" MinWidth="220"/> 
         </DataGrid.Columns> 
        </DataGrid> 

答えて

1

HyperlinkCommandの使用を作る...それが動作するかどうか私に教えてください。 DataGridDataContextに電話をかけたい場合は、FindAncestorを使用し、タイプDataGridを検索する必要があります。

 <toolkit:DataGridTemplateColumn> 
      <toolkit:DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <TextBlock> 
         <Hyperlink Command="{Binding DoStuff}"/> 
        </TextBlock > 
       </DataTemplate > 
      </toolkit:DataGridTemplateColumn.CellTemplate> 
     </toolkit:DataGridTemplateColumn> 
+0

私は上記のHCLのために書いたのと同じ問題があります。私は私の質問に追加したDataGridコードの技術でDataGridTextColumnをどのように書き直すことができるのだろうかと思っていました。ありがとうございました。 – vladc77

4

次のDataGridColumnは、あなたが欲しいものを行う必要があります(私がテストしていない、それが動作しない場合は、コメントを加える)

<DataGridTemplateColumn> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <TextBlock > 
       <Hyperlink> 
        <TextBlock Text="{Binding YourProperty}" />                      
       </Hyperlink>          
      </TextBlock> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate>       
</DataGridTemplateColumn> 

を編集
ここに私の命題を挿入する方法が要求されています。

<DataGrid.Columns> 
<DataGridTextColumn Binding="{Binding [email protected]}" Foreground="#FF6E6E6E" MinWidth="160" /> 
<DataGridTextColumn Binding="{Binding [email protected]}" Foreground="#FF6E6E6E" MinWidth="270"/> 
<DataGridTextColumn Binding="{Binding [email protected]}" Foreground="#FF6E6E6E" MinWidth="220"/> 
<DataGridTextColumn Binding="{Binding [email protected]}" Foreground="#FF6E6E6E" MinWidth="220"/> 
<DataGridTemplateColumn> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <TextBlock > 
       <Hyperlink> 
        <TextBlock Text="{Binding [email protected]}" />                      
       </Hyperlink>          
      </TextBlock> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate>       
</DataGridTemplateColumn> 

</DataGrid.Columns> 
+0

私のケースではこのDataTemplateを適用できません。私は私の質問にDataGridコードを追加しました。見てください。私は私のケースでDataGridTemplateColumnスタイルをどこに設定できるのか不思議です。ありがとうございました。 – vladc77

+0

@ vladc77:私の編集を参照 – HCL

+0

何らかの理由で、 'DataGridTemplateColumn.CellTemplate'プロパティが認識されません。私はそれを追加することはできません。私はエラーが発生しています。何が間違っているのだろうと思っていますか? – vladc77