0

コードビハインドを介してツールチップのバインディングを設定できるようにしたいクラス (ユーザーコントロールの基本クラスとして機能する) があります。私はそれを正しく機能させる方法を完全に理解できないようです。コンストラクターから関数「SetToolTip」を呼び出して、「ToolTipText」というプロパティにバインディングを設定したいと考えています。

これが私がこれまでに持っているものです:

Public MyBaseClass
Inherits UserControl
Private _ToolTipText As String = "This is the default text!!"
Public Property ToolTipText As String
    Get
        Return _ToolTipText
    End Get
    Set(value As String)
        _ToolTipText = value

    End Set
End Property

Private Sub SetToolTip()
    Me.ToolTip = New ToolTip With {.MinHeight = 30, .MinWidth = 150, .FontSize = 16, .Foreground = Brushes.White}

    Dim ToolTipBinding As Binding = New Binding
    ToolTipBinding.Source = Me
    ToolTipBinding.Path = New PropertyPath("ToolTipText")
    ToolTipBinding.Mode = BindingMode.OneWay
    ToolTipBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged

    BindingOperations.SetBinding(Me.ToolTip, ToolTipService.ToolTipProperty, ToolTipBinding)
End Sub

Public Sub New()
    SetToolTip()
End Sub
End Class

ただし、マウスオーバーすると、空のツールチップ (テキストなし) しか表示されません。私はスヌープを使用しています (他の誰かがそのツールに精通している場合)、私のクラスのツールチップ プロパティのバインディングは一覧表示されません。しかし、奇妙な部分は、ツールチップのプロパティを掘り下げると、ツールチップに正しいテキストに設定された独自のツールチップ プロパティがあることが示されることです。どうにかして、独自のツールチップ プロパティではなく、ツールチップのコンテンツにバインドする必要があるようです。

4

1 に答える 1