如何在DataGrid列中设置Text的导航URL?

时间:2012-01-30 03:12:40

标签: c# wpf xaml datagrid

我的WPF窗口中有一个绑定到数据库的DataGrid。数据库字段为Link, Title, SavedOn,分别具有类型nvarchar, nvarchar and DateTime。目前,所有的数据绑定都绑定到DataGrid中的不同列。我使用DataGridHyperLinkColumn表示链接列,Event Setter表示捕获Hyperlink.Click个事件。一切都很好。

问题:

但是现在我想这样做,Title数据网格列中的文字链接到点击时Link的文字带我到Link。使用这种方法我将保存一列,因为标题和可点击链接都在一列中,就像在普通网页中一样。任何想法我怎么能这样做?目前网格看起来像这样:  enter image description here

另外,如何将链接的默认皇家蓝色更改为其他内容?

1 个答案:

答案 0 :(得分:2)

使用ContentBinding指定链接的显示文字(只需删除Title列)。

  

要显示与URI字符串不同的超链接文本,请使用 ContentBinding 属性。

要在整个网格中设置超链接样式,请为DataGrid.Resources添加样式:

<DataGrid.Resources>
    <Style TargetType="Hyperlink">
        <Setter Property="Foreground" Value="Green" />
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="true">
                <Setter Property="Foreground" Value="Lime" />
            </Trigger>
        </Style.Triggers>
    </Style>
</DataGrid.Resources>

...要仅在一列中应用它,将其指定为列的ElementStyle,您需要将其嵌套为TextBlock样式。

<DataGridHyperlinkColumn.ElementStyle>
    <Style TargetType="TextBlock">
        <Style.Resources>
            <Style TargetType="Hyperlink">
                <!-- ... -->
            </Style>
        </Style.Resources>
    </Style>
</DataGridHyperlinkColumn.ElementStyle>