C#WPF将导航处理程序添加到DataGridHyperlinkColumn

时间:2018-10-17 16:07:44

标签: c# wpf datagridview datagrid wpfdatagrid

我对WPF C#.NEt 4.5应用程序有疑问。

我正在以编程方式在网格内部创建DataGridHyperlinkColumn。

意味着xaml文件中几乎没有任何内容,而是由.cs直接创建的。

我要实现的目标如下:

<DataGridHyperlinkColumn Header="Path" Binding="{Binding Path=FullPath}" ContentBinding="{Binding Path=Name}" IsReadOnly="True" Width="*">
   <DataGridHyperlinkColumn.ElementStyle>
      <Style>
         <EventSetter Event="Hyperlink.Click" Handler="hyperlink_Click"/>
      </Style>
   </DataGridHyperlinkColumn.ElementStyle>
</DataGridHyperlinkColumn>

使用此代码,我可以用链接填充网格,单击该链接将激活我的hyperlink_Click函数。

现在,如果我要通过代码执行此操作,则结果如下:

        DataGridHyperlinkColumn parent = new DataGridHyperlinkColumn
        {
            Binding = new Binding("ParentName"),
        };

但是现在我无法将new RequestNavigateEventHandler(hyperlink_Click)附加到将填充网格的每个链接上。

当前,我的网格中充满了无法单击的链接。

谢谢您的建议!

1 个答案:

答案 0 :(得分:1)

这相当于您的XAML:

Style style = new Style();
style.Setters.Add(new EventSetter(Hyperlink.ClickEvent, new RoutedEventHandler(hyperlink_Click)));
DataGridHyperlinkColumn parent = new DataGridHyperlinkColumn
{
    Header = "Path",
    Binding = new Binding("FullPath"),
    ContentBinding = new Binding("Name"),
    IsReadOnly = true,
    ElementStyle = style
};