2010-06-24 89 views
0

我想做一些简单的绑定到我的usercontrol内的属性。有谁知道为什么这不起作用?它在TextBlock在工具提示之外时起作用。绑定到UserControl属性内工具提示不工作

谢谢!

MasterPage.cs:

MyUserControlInstance.DisplayName = "Test"; 

MyUserControl.xaml

<ToolTipService.ToolTip> 
    <ToolTip Template="{StaticResource ToolTipTemplate}"> 
     <StackPanel> 
      <TextBlock Text="{Binding ElementName=UserControl, Path=DisplayName}" /> 
     </StackPanel> 
    </ToolTip> 
</ToolTipService.ToolTip> 

MyUserControl.cs

public static DependencyProperty DisplayNameProperty = DependencyProperty.Register("DisplayName", typeof(string), typeof(MyUserControl)); 
public string DisplayName 
{ 
    get { return (string)GetValue(DisplayNameProperty); } 
    set { SetValue(DisplayNameProperty, value); } 
} 

回答

2

说明文字,指定具有工具提示UI元素PlacementTarget财产

<TextBlock.ToolTip> 
    <ToolTip 
     DataContext="{Binding Path=PlacementTarget, RelativeSource={x:Static RelativeSource.Self}}" 
     <TextBlock Text="{Binding Text}"> <!-- tooltip content --> 
    </ToolTip> 
</TextBlock.ToolTip> 
+0

作品,谢谢! – SaphuA 2010-06-24 10:58:18

1

工具提示被认为是在自己的权利,并且因此控制不能看到它的直接父母。它内部的绑定不能访问UserControl元素,因为它对此一无所知。有关此问题的几个解决方案,请参阅here

1

元素到元素绑定不适用于工具提示,因为工具提示有它自己的元素树。 Here是一个办法做到这一点