1

这是我的代码:

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 字符串时,该实例的工具提示应该是可见的。

4

1 回答 1

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>
于 2012-10-17T19:52:41.627 回答