【问题标题】:ListView - GridView - Header TooltipListView - GridView - 标题工具提示
【发布时间】:2012-09-26 09:40:56
【问题描述】:

我希望能够使列标题的工具提示与内容相同。

如果我使用 GridView 的 ListView 的第一列包含名称和标题:“名称”,那么标题的工具提示(您可以按下的那个按钮)应该有工具提示:“名称”

我有一个 ListView 的以下代码,它的 GridView 有一些列:

 <ListView x:Name="ListViewResidents" ItemsSource="{Binding Path=Residents.View}">
            <ListView.View>
                <GridView>
                <GridViewColumn DisplayMemberBinding="{Binding Path=Name}" >
                        <GridViewColumnHeader x:Name="GridViewHeaderName"  Content="Name" Command="{Binding SortCommand}" CommandParameter="{Binding ElementName=GridViewHeaderName}"  ToolTip="{Binding ElementName=GridViewHeaderName, Path=Content}"/>
                </GridViewColumn>
                <GridViewColumn  DisplayMemberBinding="{Binding Path=FirstName}"  >
                        <GridViewColumnHeader  x:Name="GridViewHeaderFirstName" Content="Firstname" Command="{Binding SortCommand}" Tag="FirstName" CommandParameter="{Binding ElementName=GridViewHeaderFirstName}"  ToolTip="{Binding ElementName=GridViewHeaderName, Path=Content}"/>
                </GridViewColumn>
                  <GridViewColumn  DisplayMemberBinding="{Binding Path=BirthDate, StringFormat=d}"  >
                        <GridViewColumnHeader x:Name="GridViewHeaderBirthDate"  Content="Birth Date" Command="{Binding SortCommand}" CommandParameter="{Binding ElementName=GridViewHeaderBirthDate}" ToolTip="Some Text"  />
                </GridViewColumn>

我为第一列的标题工具提示创建的绑定不起作用,而 BirthDate 列的工具提示有效。我知道我可以将工具提示设置为姓名或出生日期,但我正试图找到一种不这样做的方法。

有什么想法吗? 谢谢!!! 宇宙

--- 编辑 --- 我尝试将其标记为已回答,但我不会让我这样做:我的声誉很低: 我找到了解决方案。最终。我不知道为什么我花了这么长时间才弄清楚。

我不得不将绑定更改为

RelativeSource=Self

。所以,它看起来像这样:

<GridViewColumn DisplayMemberBinding="{Binding Path=Name}" >
                        <GridViewColumnHeader ToolTip="{Binding RelativeSource={RelativeSource Self} , Path=Content}" Content="Name" Command="{Binding SortCommand}" CommandParameter="{Binding ElementName=GridViewHeaderName}"  />
                </GridViewColumn>

现在效果很好! :)

【问题讨论】:

    标签: wpf gridview header tooltip


    【解决方案1】:

    您可以将此代码添加到您的Ressource

    <Window.Resources>
                <DataTemplate x:Key="nameTemplate">
                    <TextBlock Text="{Binding Name}"  Margin="-6,0">
                        <TextBlock.ToolTip>
                            <ToolTip>
                                <TextBlock Foreground="Green" Text="{Binding Name}"/>
                            </ToolTip>
                        </TextBlock.ToolTip>
                    </TextBlock>
                </DataTemplate>
            </Window.Resources>
    

    使用StaticResource 调用此模板

    "{StaticResource nameTemplate}"
    

    【讨论】:

    • 在哪里调用它?在样式中这将是一个错误。此外,如果我有 10 列,那么我需要制作 10 个 DataTemplates?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多