2010-09-13 5 views
2

Je me attendais le titre de la pointe de l'écran pour afficher « X » aussi bien, mais il est vide:screentip de liaison WPF avec source par rapport

<Fluent:Button x:Name="rbNewProject" 
     Header="X"> 

    <Fluent:Button.ToolTip> 
     <Fluent:ScreenTip Title="{Binding Header, RelativeSource={RelativeSource FindAncestor, AncestorType=Fluent:Button}}"> 
     </Fluent:ScreenTip> 
    </Fluent:Button.ToolTip> 

</Fluent:Button> 

Je soupçonne mon expression de liaison est mauvaise, mais je peux » t figure it ...

Répondre

2

Malheureusement, FindAncestor ne fonctionne pas sur les info-bulles car elles ne font pas partie de l'objet VisualTree de leur élément cible. Ce que vous pouvez faire est de définir le DataContext de l'info-bulle comme PlacementTarget (c'est-à-dire Fluent: Button dans votre exemple) afin que les autres instructions Binding de l'info-bulle fonctionnent avec le PlacementTarget comme source de liaison.

Dans votre cas, essayez ce code:

<Fluent:Button x:Name="rbNewProject" 
     Header="X"> 

    <Fluent:Button.ToolTip> 
     <Fluent:ScreenTip DataContext="{Binding PlacementTarget, RelativeSource={RelativeSource Self}}" Title="{Binding Header}"> 
     </Fluent:ScreenTip> 
    </Fluent:Button.ToolTip> 

</Fluent:Button> 

Plus d'informations sur se trouvent ici cette "technique": http://karlshifflett.wordpress.com/2007/12/29/wpf-sample-series-data-binding-in-tooltip/

Questions connexes