2011-01-13 17 views
0

我在想,如果這是一件容易的事。我需要將datagrid中的一些文本設置爲超鏈接。我用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

利用Command的。如果您想要撥打的DataGrid,您需要使用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> 

編輯
按照要求,在這裏我的主張如何插入。讓我知道,如果它的工作原理......在Hyperlink

<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'屬性無法識別。我無法添加它。我AMm得到錯誤。我想知道什麼是錯的? – vladc77

相關問題