Wpf在一列中有多个超链接
本文关键字:超链接 一列 Wpf | 更新日期: 2023-09-27 18:01:24
在Wpf DataGrid中,我们如何在一列中用逗号分隔显示多个超链接(每个指向不同的URL)
我们有两列DataGrid,分别是ID和'文件名'。一个ID可以有多个文件。
我们需要在DataGrid中显示它,有两列'ID'和'Files',其中与ID相关的文件在单行中,文件名以逗号分隔为超链接,因此用户可以单击超链接并打开它。
我可以为单个链接这样做,但不能为多个超链接。文件列显示单列的代码
<DataGridHyperlinkColumn Header="Files"
Binding="{Binding FileLink}" ContentBinding="{Binding FileName}" Width="Auto" CanUserSort="False">
<DataGridHyperlinkColumn.ElementStyle>
<Style>
<EventSetter Event="Hyperlink.Click"Handler="Hyperlink_Click"/>
</Style>
</DataGridHyperlinkColumn.ElementStyle>
</DataGridHyperlinkColumn>
您可以为每个超链接创建自己的datagridtemplatecoluml,并将该模板绑定到链接列表。
DataTemplate可以是ItemsControl, ItemsSource是链接列表
在您的列表中,您可以有多个具有相同ID但具有不同文件的条目。
你想要达到的目标一定是这样的:
ID1 hyperlink1
hyperlink2
hyperlink3
ID2 hyperlink1
但是你可以有一个这样的列表:
ID1 hyperlink1
ID1 hyperlink2
ID1 hyperlink3
ID2 hyperlink1
<dxg:GridColumn Header="Actions" IsSmart="True">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock>
<dxe:HyperlinkEdit Name="EditActionLink" AllowAutoNavigate="True" Text="Edit"/>
</TextBlock>
<TextBlock>
<dxe:HyperlinkEdit Name="DeleteActionLink" AllowAutoNavigate="True" Text="Delete"/>
</TextBlock>
</StackPanel>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>