Wpf一列中的多个超链接

时间:2015-07-07 20:15:09

标签: c# wpf datagrid

在Wpf DataGrid中,我们如何在一列中以逗号分隔显示多个超链接(每个指向不同的URL)。

我们有DataGrid有两列,分别是ID和'文件名'。单个ID可以包含多个文件。

我们需要在DataGrid中显示两列' ID'和'文件'使用与单个行中的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>

感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

您可以为每个超链接创建一个带有DataTemplate的DataGridTemplateColumn,并将模板绑定到链接列表。

DataTemplate可以是ItemsControl whouse ItemsSource是链接列表

答案 1 :(得分:0)

在您的列表中,您可以拥有多个具有相同ID但具有不同文件的条目。

你想要达到的目标必须是这样的:

ID1 hyperlink1
    hyperlink2
    hyperlink3
ID2 hyperlink1

但你可以有一个这样的清单:

ID1 hyperlink1
ID1 hyperlink2
ID1 hyperlink3
ID2 hyperlink1

答案 2 :(得分:0)

<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>