我正在使用WPFToolkit的Datagrid控件。我可以填充datagrid,但是DataGridHyperlinkColumn出现了问题。我希望它以可视方式显示该链接作为“人”的名称,但要使该链接转到任何UriLink的值。

我怎样才能做到这一点?我究竟做错了什么?

Xaml:

<dg:DataGridHyperlinkColumn Header="Person Name" Width="200"
Binding="{Binding Path=PersonName}" IsReadOnly="True"
TargetName="{Binding Path=UriLink}"></dg:DataGridHyperlinkColumn>


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

备用Xaml:

<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):

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

最佳答案

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

10-05 19:30