我在DataGridCell中使用了ToolTip。
在我的项目中,我使用了AvalonDock并创建了3个或4个Window选项卡。
然后,它运行良好,并且工具提示在DataGrid中显示良好,但是当我交换选项卡时出现错误。我认为加载程序...
这是我的.xaml代码的一部分。
<DataGrid.CellStyle>
<Style TargetType="DataGridCell" BasedOn="{StaticResource MetroDataGridCell}">
<Setter Property="ToolTip" Value="{Binding Path=Content.Text, RelativeSource={RelativeSource Self}}" />
</Style>
</DataGrid.CellStyle>
有效。 但是有错误说
System.Windows.Data错误:40:BindingExpression路径错误:'object'''ContentPresenter'(Name ='')'上找不到'Text'属性。 BindingExpression:路径= Content.Text; DataItem ='DataGridCell'(Name =''); target元素是'DataGridCell'(Name =''); target属性是'ToolTip'(类型'Object')
我该如何解决?
+加法 我修改了源代码。
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Content}" />
然后,BindingExpression错误消失了。但是在显示ToolTip之后,DataGridCell的内容就像我发布的图片一样消失!奇怪的虫子!
答案 0 :(得分:0)
我以这种方式制作ToolTip
:
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Content.Text}"/>
<DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.Header>
<TextBlock Text="Foo Header"/>
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DataTemplate.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="ToolTip">
<Setter.Value>
<ToolTip
Style="{StaticResource ToolTipBrowserDescription}"
Content="{Binding FooProperty}"
HasDropShadow="True">
</ToolTip>
</Setter.Value>
</Setter>
</Style>
</DataTemplate.Resources>
<TextBlock Text="{Binding FooProperty}" TextTrimming="CharacterEllipsis"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<Style TargetType="{x:Type ToolTip}" x:Key="ToolTipBrowserDescription">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToolTip}">
<Border BorderBrush="#FF424242" Background="#FFEEEEEE" BorderThickness="1">
<TextBlock Text="{TemplateBinding Content}" FontWeight="Bold" TextWrapping="Wrap" Margin="5" MinWidth="50" MaxWidth="500"/>
<Border.Effect>
<DropShadowEffect Opacity="0.65" ShadowDepth="1"/>
</Border.Effect>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="ToolTipService.HasDropShadow" Value="True">
<Setter Property="Margin" Value="0,0,1,1"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>