这是我的代码:
public string Units
{
get { return (string)GetValue(UnitsProperty); }
set { SetValue(UnitsToolTipVisibility, Visibility.Visible);
SetValue(UnitsProperty, value); }
}
public static readonly DependencyProperty UnitsProperty = DependencyProperty.Register("Units", typeof(string), typeof(UserInputOutput));
public static readonly DependencyProperty UnitsToolTipVisibility = DependencyProperty.Register("UnitsToolTipVisibility", typeof(Visibility), typeof(UserInputOutput), new UIPropertyMetadata(Visibility.Visible));
我的目标: 当Units变量设置时,我希望UserControl的这个实例的工具提示变为可见。
我想我会以错误的方式解决这个问题。我有很多很多UserControl实例。当实例设置了Units字符串时,该实例的工具提示应该是可见的。
答案 0 :(得分:1)
在XAML中使用触发器会更容易。你可以完全摆脱UnitsToolTipVisibilityProperty
。
<ToolTip>
<ToolTip.Resources>
<Style TargetType="ToolTip">
<Style.Triggers>
<!-- hide tooltip when no unit set -->
<DataTrigger Binding="{Binding Units}" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</ToolTip.Resources?
</ToolTip>