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>

Wpf在一列中有多个超链接

您可以为每个超链接创建自己的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>