我的WPF窗口中有一个绑定到数据库的DataGrid。数据库字段为Link, Title, SavedOn
,分别具有类型nvarchar, nvarchar and DateTime
。目前,所有的数据绑定都绑定到DataGrid中的不同列。我使用DataGridHyperLinkColumn
表示链接列,Event Setter
表示捕获Hyperlink.Click
个事件。一切都很好。
问题:
但是现在我想这样做,Title
数据网格列中的文字链接到点击时Link
的文字带我到Link
。使用这种方法我将保存一列,因为标题和可点击链接都在一列中,就像在普通网页中一样。任何想法我怎么能这样做?目前网格看起来像这样:
另外,如何将链接的默认皇家蓝色更改为其他内容?
答案 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>