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 に答える