有没有办法将命令与WPF Toolkit DataGridHyperlinkColumn关联?

有没有办法将命令与WPF Toolkit DataGridHyperlinkColumn关联?,wpf,datagrid,command,wpftoolkit,Wpf,Datagrid,Command,Wpftoolkit,是否有任何方法可以将命令与DataGridHyperlinkColumn关联?我试过这个: <DataGridHyperlinkColumn Header="Client Name" Binding="{Binding ShortName}"> <DataGridHyperlinkColumn.ElementStyle> <Style TargetType="TextBlock"> <Setter Propert

是否有任何方法可以将命令与DataGridHyperlinkColumn关联?我试过这个:

   <DataGridHyperlinkColumn Header="Client Name" Binding="{Binding ShortName}">
     <DataGridHyperlinkColumn.ElementStyle>
      <Style TargetType="TextBlock">
       <Setter Property="Hyperlink.Command" 
                                    Value="{Binding DataContext.NavigateToClientCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:ClientsSummaryView}}}"/>
                            <Setter Property="Hyperlink.CommandParameter" Value="{Binding}"/>
                        </Style>
                    </DataGridHyperlinkColumn.ElementStyle>
    </DataGridHyperlinkColumn>

在运行时,我可以看到绑定的计算结果是正确的(调用了命令的属性getter),但是当我单击超链接时,命令没有执行。有更好的方法吗

谢谢


Daniel

您确定该命令与超链接关联吗?我尝试在一个示例应用程序中设置此选项,但该命令与超链接没有关联(如果您从
CanExecute
返回false,您将能够快速确定它是否已连接)

相反,我创建了一个
DataGridTemplateColumn
,以完成以下任务:

<DataGridTemplateColumn Header="Client Name">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock>
                <Hyperlink Command="{Binding DataContext.NavigateToClientCommand, RelativeSource={RelativeSource AncestorType={x:Type local:ClientsSummaryView}}}"
                           CommandParameter="{Binding ShortName}">
                     <TextBlock Text="{Binding ShortName}" />
                </Hyperlink>
            </TextBlock>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

如果必须创建多个列,这将变得非常烦人。使用Reflector打开工具包后,它似乎支持使用超链接的
TargetName
/
NavigationUrl
范例


如果您在很多地方需要这种类型的列,我建议扩展
DataGridHyperlinkColumn
并添加一个命令属性。然后,您可以修改从
generateeelement
返回的元素,以便它使用您的命令。

Abe:谢谢。我希望能在DataGridTemplateColumn周围找到快捷方式,但老实说,它看起来并没有比我的更糟。再次感谢!你能解释一下
的工作原理吗?它看起来非常复杂。@Dai-这是一个
相对资源
绑定到添加此列的
ClientsSummaryView
DataContext
上的
ICommand
属性。此问题询问了这些类型的绑定,希望能帮助您更好地理解: