Search code examples
wpflistviewtooltip

Hide Tooltip for listviewitem


I'm using WPF listview. My requirement is to show tool tips on the listview item. The following XAML works for me.

<ListView Height="174" HorizontalAlignment="Left" ItemsSource="{Binding SystemsList}" Margin="12,27,0,0" Name="listView1" VerticalAlignment="Top" Width="456">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="System Name" Width="Auto"  DisplayMemberBinding="{Binding SystemName}"/>
                <GridViewColumn Header="Network Name" Width="Auto" DisplayMemberBinding="{Binding SystemComputerName}"/>
                <GridViewColumn Header="IP Address" Width="Auto" DisplayMemberBinding="{Binding SystemIPAddress}"/>
            </GridView>
        </ListView.View>
        <ListView.ItemContainerStyle>
            <Style TargetType="{x:Type ListViewItem}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Path=MaxConnectionsLimitReached}" Value ="true" >
                        <Setter Property="IsEnabled" Value="False"/>
                    </DataTrigger>
                </Style.Triggers>
                <Setter Property="ToolTip" Value="{Binding Path=ToolTip1}" />

            </Style>              
        </ListView.ItemContainerStyle>
    </ListView>

But how do I accomplish the following

1) The tooltip is not shown for disabled rows. How to show it?

2) I Want to hide tooltip for certain rows.


Solution

  •  <Style TargetType="{x:Type ListViewItem}">
                    <Style.Triggers>
                             <!-- Your DataTrigger -->
    
                             <!-- For hiding the ToolTip according to SomeProperty -->
                             <DataTrigger Binding="{Binding SomeProperty}" Value="SomeValue">
                                  <Setter Property="ToolTip" Value="{x:Null}"/>
                             </DataTrigger>
    
                    </Style.Triggers>
                    <Setter Property="ToolTip" Value="{Binding Path=ToolTip1}" />
                    <Setter Property=ToolTipService.ShowOnDisabled" Value="True"/> <!-- For Showing ToolTip even on disabled rows -->
                </Style>