如何将Tooltip的DataTemplate绑定到其父级?

时间:2018-09-13 13:37:24

标签: wpf xaml data-binding templatebinding

我编写了以下代码,以在“工具提示”窗口的ListBoxItem内容中显示图像(预览效果)。但他们根本没有工作。

<ListBox>
  <ListBoxItem>
    <Image x:Name="image" Source="image.jpg" Stretch="Uniform">
      <Image.ToolTip>
        <Image Source="{Binding RelativeSource={RelativeSource AncestorType=Image}, Path=Source}" />
      </Image.ToolTip>
    </Image>
  </ListBoxItem>  
<ListBox>  
<ListBox>
  <ListBoxItem>
    <Image x:Name="image" Source="image.jpg" Stretch="Uniform">
      <Image.ToolTip>
        <Image Source="{Binding Source, RelativeSource={RelativeSource TemplatedParent}}" />
      </Image.ToolTip>
    </Image>
  </ListBoxItem>  
<ListBox>  
<ListBox>
  <ListBoxItem>
    <Image x:Name="image" Source="image.jpg" Stretch="Uniform">
      <Image.ToolTip>
        <Image Source="{Binding}" />
      </Image.ToolTip>
    </Image>
  </ListBoxItem>  
<ListBox>  

这些都不起作用。

1 个答案:

答案 0 :(得分:2)

这应该有效:

<ListBox>
    <ListBoxItem>
        <Image x:Name="image" Source="screen.png" Stretch="Uniform">
            <Image.ToolTip>
                <ToolTip>
                    <Image Source="{Binding RelativeSource={RelativeSource AncestorType=ToolTip}, Path=PlacementTarget.Source}" />
                </ToolTip>
            </Image.ToolTip>
        </Image>
    </ListBoxItem>
</ListBox>

Image不是ToolTip的视觉祖先,但是您可以使用ToolTip的{​​{1}}属性绑定到PlacementTarget。 / p>