C# WPF 将导航处理程序添加到 DataGridHyperlinkColumn
C# WPF add Navigation Handler to DataGridHyperlinkColumn
我在使用 WPF C# .NEt 4.5 应用程序时遇到问题。
我正在以编程方式在网格中创建 DataGridHyperlink列。
意味着 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>
使用此代码,我可以使用 link 填充我的网格,单击后将激活我的 hyperlink_Click
功能。
现在,如果我通过代码执行此操作,结果如下:
DataGridHyperlinkColumn parent = new DataGridHyperlinkColumn
{
Binding = new Binding("ParentName"),
};
但现在我无法将 new RequestNavigateEventHandler(hyperlink_Click)
附加到每个 link 以填充我的网格。
目前我的网格中填充了 links,它们无法被点击。
感谢任何建议!
这相当于您的 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
};
我在使用 WPF C# .NEt 4.5 应用程序时遇到问题。
我正在以编程方式在网格中创建 DataGridHyperlink列。
意味着 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>
使用此代码,我可以使用 link 填充我的网格,单击后将激活我的 hyperlink_Click
功能。
现在,如果我通过代码执行此操作,结果如下:
DataGridHyperlinkColumn parent = new DataGridHyperlinkColumn
{
Binding = new Binding("ParentName"),
};
但现在我无法将 new RequestNavigateEventHandler(hyperlink_Click)
附加到每个 link 以填充我的网格。
目前我的网格中填充了 links,它们无法被点击。
感谢任何建议!
这相当于您的 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
};