首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用WPFToolKit的DataGridHyperlinkColumn

使用WPFToolKit的DataGridHyperlinkColumn
EN

Stack Overflow用户
提问于 2009-03-16 17:40:54
回答 3查看 7.5K关注 0票数 4

我使用的是WPFToolkit的Datagrid控件。我可以填充数据网格,但我在使用DataGridHyperlinkColumn时遇到问题。我希望它在视觉上将链接显示为人名,但链接要转到任何UriLink的值。

我该怎么做呢?我做错了什么?

Xaml:

代码语言:javascript
运行
复制
<dg:DataGridHyperlinkColumn Header="Person Name" Width="200" 
Binding="{Binding Path=PersonName}" IsReadOnly="True" 
TargetName="{Binding Path=UriLink}"></dg:DataGridHyperlinkColumn>

或者,我宁愿放入一个事件处理程序,并创建要导航到的页面对象,但我似乎无法从事件的两个参数(在本例中为o和e)中提取任何数据,其中obj1/obj2是单击的超链接行的对象/变量。

替代Xaml:

代码语言:javascript
运行
复制
<dg:DataGridHyperlinkColumn Header="Person Name" Width="200" 
Binding="{Binding Path=PersonName}" IsReadOnly="True" 
TargetName="{Binding Path=UriLink}">
    <dg:DataGridHyperlinkColumn.ElementStyle>
    <Style TargetType="TextBlock">
    <EventSetter Event="Hyperlink.Click" Handler="OnHyperlinkClick" />
    </Style>
    </dg:DataGridHyperlinkColumn.ElementStyle>
    </dg:DataGridHyperlinkColumn>

VB代码(用于替代Xaml):

代码语言:javascript
运行
复制
Private Sub OnHyperlinkClick(ByVal o As Object, ByVal e As RoutedEventArgs)

        'TODO: Create page to navigate to
        Dim page As New RedirectPage(obj1, obj2)
        Me.NavigationService.Navigate(page)

End Sub
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-03-25 19:03:23

将o强制转换为TextBlock,它的DataContext是您的行的对象。您可以将其转换为您的对象类型。

票数 3
EN

Stack Overflow用户

发布于 2009-03-21 23:34:06

也许Hyperlink.RequestNavigate事件会工作得更好?看起来EventArgs包含导航目标所在的URI,它应该是超级链接控件本身的URI。

票数 0
EN

Stack Overflow用户

发布于 2009-04-06 13:47:39

正如AKCODer所说,它在DataContext中。通过使用OnHyperlinkClick事件处理程序,我使用了以下内容:

代码语言:javascript
运行
复制
DirectCast(DirectCast(DirectCast(e.Source, System.Object), System.Windows.Documents.Hyperlink).DataContext, System.Object)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/651416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档