我对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)
附加到将填充网格的每个链接上。
当前,我的网格中充满了无法单击的链接。
谢谢您的建议!
答案 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
};