2013-11-02 54 views
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 

然而,當我將鼠標放置,我只得到一個空的工具提示(無文本)。我使用snoop(如果其他人熟悉該工具),並且它不會爲我的類的tooltip屬性列出任何綁定。但奇怪的部分是,如果我深入工具提示屬性,我表明工具提示有它自己的tooltip屬性,它被設置爲正確的文本。看來我不知何故需要綁定到工具提示的內容,而不是它自己的工具提示屬性。

回答

0

所以我只是想通了。設置綁定的行應顯示爲:

BindingOperations.SetBinding(Me.ToolTip, ContentControl.ContentProperty, ToolTipBinding) 

我覺得很奇怪,但在設置工具提示的工具提示之前。

相關問題