2012-08-23 54 views
0

有人能告訴我如何綁定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綁定嘗試,但這種只顯示非隱藏的控制,因此,當一個孩子被隱藏的(無形的眼睛,而不是電腦)在StackPanel,那麼這個孩子也在ToolTip隱形。

也想說與ActualWidth的綁定工作。現在我有一個工具提示,它有正確的措施,但沒有內容(它只是一個填充的空白矩形)。

有人請幫幫我? :)

僅供參考,我想要的是像你用他的工具提示綁定在Textblock的Content屬性上。唯一的區別是我想綁定一個對象集合而不是字符串值。

+0

難道你不能把父母完全相同的StackPanel? – franssu

+0

你的意思是代替ItemControl?請告訴我如何綁定Children屬性,因爲該屬性是隻讀的 - '... – Matthias

+0

你可以谷歌的「WPF綁定到兒童」。我知道我已經使用附加財產綁定到兒童財產。儘管我現在找不到鏈接。但有一點點的谷歌搜索。 –

回答

0

問題可能是由於ToolTip不屬於StackPanel的可視化樹。

因此,StackPanel不是ToolTip的祖先 - >因此爲什麼RelativeSource綁定不能工作。

0

WPF你應該使用MVVM,因爲它可以讓你總是綁定到數據,而不是其他控件。您必須考慮WPF控件數據可視化程序,而不是數據容器。因此,如果您使用的是MVVM,只需將Tooltip ItemsControl綁定到您的(可觀察?)項目集合即可。

+0

我正在使用MVVM。你對那篇文章有什麼意見..?複製粘貼從另一個網站或什麼..? – Matthias

+0

問題是你正試圖將ItemsControl.ItemsSource綁定到StackPanel項目。爲什麼?如上所述,將其綁定到您的MVVM集合。 – JoanComasFdz