绑定工具提示上的对象集合

时间:2012-08-23 08:58:21

标签: wpf binding collections tooltip stackpanel

有人可以告诉我如何将StackPanel的工具提示与其子项绑定吗?

以下是我使用的一些代码:

<StackPanel>
... (some UI like grid, textblock, border, ...)
<StackPanel.ToolTip>
 <ToolTip Placement="RelativePoint" Padding="0" HasDropShadow="False">
   <ItemsControl ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=StackPanel, AncestorLevel=3}, Path=Children}"
                 Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=StackPanel, AncestorLevel=3}, Path=ActualWidth}" 
                 Height="11">
   </ItemsControl>
  </ToolTip>
</StackPanel.ToolTip>
<StackPanel> 

我首先尝试使用绑定在VisualBrush上的ToolTip,但这只显示非隐藏控件,因此当隐藏一个孩子时(对于眼睛不可见,而不是PC)在StackPanel中,那个孩子在ToolTip中也是不可见的。

还想说与ActualWidth的绑定有效。现在我有一个具有正确度量的工具提示,但它没有内容(它只是一个填充的空白矩形)。

有人请帮帮我? :)

仅供参考,我想要的就像你用他的工具提示绑定Textblock的Content属性一样。唯一的区别是我想绑定一组对象而不是字符串值。

2 个答案:

答案 0 :(得分:0)

WPF 中,您应该使用 MVVM ,因为它允许您始终绑定数据,而不是其他控件。您必须将 WPF控件视为数据可视化工具,而不是数据容器。

因此,如果您正在使用MVVM,只需将Tooltip ItemsControl绑定到您的(可观察?)项目集合。

答案 1 :(得分:0)

问题可能是由于ToolTip不是StackPanel的可视化树的一部分。

因此,StackPanel不是ToolTip的祖先 - &gt;因此,为什么RelativeSource绑定不起作用。