我正在尝试对usercontrol中的属性进行一些简单的绑定。有谁知道为什么这不起作用?它在TextBlock位于Tooltip之外时有效。
谢谢!
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); }
}
答案 0 :(得分:4)
Tooltip具有PlacementTarget属性,该属性指定具有Tooltip
的UI元素<TextBlock.ToolTip>
<ToolTip
DataContext="{Binding Path=PlacementTarget, RelativeSource={x:Static RelativeSource.Self}}"
<TextBlock Text="{Binding Text}"> <!-- tooltip content -->
</ToolTip>
</TextBlock.ToolTip>
答案 1 :(得分:1)
工具提示本身被认为是一个控件,因此无法看到它的直接父级。它内部的绑定无法访问UserControl元素,因为它对它一无所知。有关此问题的几种解决方案,请参阅here。
答案 2 :(得分:1)
元素到元素绑定不适用于工具提示,因为工具提示有自己的元素树。 Here是一种方法