1
我试图绑定ListBoxItem的工具提示。我有这样的定义在我的控件模板:工具提示中的WPF DataContext
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<ControlTemplate.Resources>
<conv:IconConverter x:Key="IconConverter" />
<conv:FirstImageConverter x:Key="FirstImageConverter"/>
<conv:DebugConverter x:Key="dbg"/>
</ControlTemplate.Resources>
<Border ...>
<StackPanel>
<Image MaxHeight="160" Stretch="UniformToFill" Source="{Binding Icon,Converter={StaticResource IconConverter},ConverterParameter=128}" Height="128"/>
<TextBlock x:Name="lblName" Text="{Binding Name}" />
</StackPanel>
<Border.ToolTip>
<DockPanel LastChildFill="True" Margin="2" MaxWidth="800"
DataContext="{Binding Images,Converter={StaticResource FirstImageConverter}}"
IsEnabled="{Binding Images,Converter={StaticResource FirstImageConverter},ConverterParameter=enabled}">
<TextBlock DockPanel.Dock="Bottom" Width="Auto" MaxWidth="600" Text="{Binding Caption}" Height="Auto" />
<Image x:Name="imgFullSize" DockPanel.Dock="Top" Stretch="None" Width="Auto" Source="{Binding Filename,Converter={StaticResource IconConverter}}"/>
</DockPanel>
</Border.ToolTip>
是的,我得到一个绑定错误:System.Windows.Data Error: 3 : Cannot find element that provides DataContext. BindingExpression:Path=Images; DataItem=null; target element is 'DockPanel' (Name=''); target property is 'DataContext' (type 'Object')
我ListBoxItem中的datacontext的不包含图像属性作为它的名称和图标的属性,这是正确显示。我也尝试使用TooltipService.ToolTip
而不是Border.ToolTip
,没有任何效果。有什么区别,为什么我的绑定工作?
请参阅[本文的答案](http://stackoverflow.com/a/14755540/302677)(现在没有时间将其写成完整答案:)) – Rachel 2013-04-23 14:01:08
谢谢Rachel,这个led我到解决方案。 – Echilon 2013-04-23 14:06:35