C# 如何在ListView的GridViewColumn中拥有可单击的超链接列表?

C# 如何在ListView的GridViewColumn中拥有可单击的超链接列表?,c#,.net,wpf,xaml,hyperlink,C#,.net,Wpf,Xaml,Hyperlink,我正在尝试将对象列表绑定到以逗号分隔且可单击的超链接列表 如果每个单元格只有一个,我可以这样做,但我不知道如何绑定每个单元格的集合 在单个GridViewColumn单元格中类似的内容: Effect01, Effect02, Effect02, Shader01. Shader02 单击其中任何一个将调用绑定对象的Execute方法 每个要素是: public class EffectLink : IExecutable { public string Name {get; set;

我正在尝试将对象列表绑定到以逗号分隔且可单击的
超链接列表

如果每个单元格只有一个,我可以这样做,但我不知道如何绑定每个单元格的集合

在单个
GridViewColumn
单元格中类似的内容:

Effect01, Effect02, Effect02, Shader01. Shader02
单击其中任何一个将调用绑定对象的
Execute
方法

每个要素是:

public class EffectLink : IExecutable
{
    public string Name {get; set;}
    public void Execute ();
}
IExecutable
强制执行

我这样做是因为
Execute
的行为将取决于它是否是着色器、效果等

有什么想法吗

编辑:

我发现我可以做到这一点:

<TextBlock>
    <Hyperlink>Effect01</Hyperlink>
    <Hyperlink>Effect02</Hyperlink>
</TextBlock>

效应01
效应02
这显示了一个单元格中两个空间分隔的超链接

此外,这个问题可能与此相关,但它显示了如何在代码中而不是在xaml中实现这一点:

GridViewColumn.CellTemplate

    <GridViewColumn >
        <GridViewColumn.CellTemplate>
            <DataTemplate>
                <ItemsControl ItemsSource="{Binding}">
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel Orientation="Horizontal"/>
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>

                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal">
                                <TextBlock x:Name="commaTextBlock" Text=", " />
                                <TextBlock><Hyperlink><Run Text="{Binding Path=Name}" /></Hyperlink></TextBlock>
                            </StackPanel>

                            <DataTemplate.Triggers>
                                <DataTrigger Binding="{Binding RelativeSource={RelativeSource PreviousData}}" Value="{x:Null}">
                                    <Setter Property="Visibility" TargetName="commaTextBlock" Value="Collapsed"/>
                                </DataTrigger>
                            </DataTemplate.Triggers>
                        </DataTemplate>

                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </DataTemplate>
        </GridViewColumn.CellTemplate>
    </GridViewColumn>


谢谢,有一点不同,效果集合位于ObservableCollection中,因此效果是每个GraphNode的属性。你知道我怎样才能把它绑定到这个集合上吗?当前ListView ItemsSource设置为ObservableCollection,因此这些超链接应该从每个GraphNode.Effects集合生成。这有意义吗?您可以将
绑定到EffectLink对象上的
ICommand
,该对象可以调用Execute()方法,您可能需要在EffectLink上创建一个名为ExecuteCommand的ICommand类型的属性,并使用类似于的方法将ExecuteCommand挂接到Execute方法,然后您的超链接绑定将类似于Command=“{binding Path=ExecuteCommand}”