コードビハインドを介してツールチップのバインディングを設定できるようにしたいクラス (ユーザーコントロールの基本クラスとして機能する) があります。私はそれを正しく機能させる方法を完全に理解できないようです。コンストラクターから関数「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
ただし、マウスオーバーすると、空のツールチップ (テキストなし) しか表示されません。私はスヌープを使用しています (他の誰かがそのツールに精通している場合)、私のクラスのツールチップ プロパティのバインディングは一覧表示されません。しかし、奇妙な部分は、ツールチップのプロパティを掘り下げると、ツールチップに正しいテキストに設定された独自のツールチップ プロパティがあることが示されることです。どうにかして、独自のツールチップ プロパティではなく、ツールチップのコンテンツにバインドする必要があるようです。