如何在 WPF 中为该列中的每个 TreeViewItem 自定义带有 HyperLink/LinkLabel 控件的 TreeView 列? [英] How to customize a TreeView column with HyperLink/LinkLabel controls for each TreeViewItem in that column in WPF?

查看:25
本文介绍了如何在 WPF 中为该列中的每个 TreeViewItem 自定义带有 HyperLink/LinkLabel 控件的 TreeView 列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试更改第三列/最后一列.

I am trying to change the 3rd/last column.

示例代码:

<Window x:Class="WpfTest2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:r="http://schemas.aspitalia.com/Ricciolo/Controls" 
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Grid.Resources>


            <XmlDataProvider x:Key="data" Source="Data.xml">
            </XmlDataProvider>

            <HierarchicalDataTemplate x:Key="dt" ItemsSource="{Binding XPath=outline}">
            </HierarchicalDataTemplate>

        </Grid.Resources>

        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>

        <r:TreeView Name="Report" ItemsSource="{Binding Source={StaticResource data},XPath=/opml/body/outline/outline}" ItemTemplate="{StaticResource dt}">
            <r:TreeView.Columns>
                <GridViewColumn Header="Title" DisplayMemberBinding="{Binding XPath=@title}" Width="150" />
                <GridViewColumn Header="Childs" DisplayMemberBinding="{Binding XPath=@count}" Width="100" />
                <GridViewColumn Header="Url" DisplayMemberBinding="{Binding XPath=@xmlUrl}" Width="200" />
            </r:TreeView.Columns>
        </r:TreeView>


    </Grid>
</Window>

推荐答案

试试这个:

        <r:TreeListView ItemsSource="{Binding Source={StaticResource data},XPath=/opml/body/outline/outline}" ItemTemplate="{StaticResource dt}">
        <r:TreeListView.Columns>
            <GridViewColumn Header="Title" DisplayMemberBinding="{Binding XPath=@title}" Width="150" />
            <GridViewColumn Header="Childs" DisplayMemberBinding="{Binding XPath=@count}" Width="100" />
            <GridViewColumn Header="Url" Width="200">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock>
                            <Hyperlink NavigateUri="{Binding XPath=@xmlUrl}" RequestNavigate="Hyperlink_RequestNavigate">
                                <TextBlock Text="{Binding XPath=@xmlUrl}" />
                            </Hyperlink>    
                        </TextBlock>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </r:TreeListView.Columns>
    </r:TreeListView>

在后面的代码中:

    private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
    {
        Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri));
        e.Handled = true;
    }

我在这里找到了解决方案:http://nishantrana.wordpress.com/2009/03/26/using-hyperlink-in-wpf-application/

I found the solution here: http://nishantrana.wordpress.com/2009/03/26/using-hyperlink-in-wpf-application/

这篇关于如何在 WPF 中为该列中的每个 TreeViewItem 自定义带有 HyperLink/LinkLabel 控件的 TreeView 列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆