Итак, у меня следующая проблема:
В моем ListView
я хочу добавить ToolTips
к конкретному GridViewColumns
.Иногда эти ToolTips
пусты, и мне нужно их скрыть.
Когда у меня есть ToolTip
в строке ListView
, у меня не возникает проблем при выполнении следующих действий в моем файле App.xaml
:
<Style TargetType="ToolTip">
<Style.Triggers>
<Trigger Property="Content" Value="{x:Static sys:String.Empty}">
<Setter Property="Visibility" Value="Collapsed" />
</Trigger>
<Trigger Property="Content" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed" />
</Trigger>
</Style.Triggers>
</Style>
Но если ToolTip
применяется только к одному столбцу моего ListView
, мой XAML выглядит следующим образом:
<GridViewColumn Header="{x:Static p:Resources.Name}" Width="100">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding Path=Name}" Tag="{Binding Name}"
MouseMove="mouseOverNameRepere">
<TextBlock.ToolTip>
<StackPanel>
<Grid>
<TextBlock Grid.Column="0"
Text="{Binding Path=ToolTipModifications}"
TextAlignment="Left" HorizontalAlignment="Left"/>
</Grid>
</StackPanel>
</TextBlock.ToolTip>
</TextBlock>
</Grid>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
Как мне скрыть ToolTip
когда он пуст?Код в моем App.xaml
не работает.Также пытался сделать это в коде:
TextBlock item = (TextBlock)sender;
ToolTip toolTip = (ToolTip)item.ToolTip;
Но вторая строка дает мне исключение, так как item.ToolTip
является StackPanel
объектом и не может быть преобразован?Фактически я вычисляю содержимое ToolTip
только при вводе элемента TextBox
, поэтому я подумал, что в этот момент я проверю и приму toolTip.Visibility
, но не смог.