依赖属性未在WPF中的一个特定控件中注册

时间:2015-10-20 10:56:31

标签: wpf vb.net

我有两个不同的控件,它们都有一个名为Value的属性。我在两种情况下都使用相同的代码。然而,在一种情况下,我得到绑定错误说"绑定只能用于依赖对象中的依赖属性。

以下是实现依赖项属性的代码

Public Class Calender
Implements INotifyPropertyChanged

Public Shared ValueProperty As DependencyProperty = DependencyProperty.Register("Value", GetType(String), GetType(Calendar))
Public Property Value() As String
    Get
        If Not TryCast(Me.GetValue(ValueProperty), String) Is Nothing Then
            Return TryCast(Me.GetValue(ValueProperty), String)
        Else
            Return String.Empty
        End If
    End Get
    Set(value As String)
        Me.SetValue(ValueProperty, value)
    End Set
End Property
Public Event PropertyChanged As PropertyChangedEventHandler _
        Implements INotifyPropertyChanged.PropertyChanged

这是我在另一个控件中使用的完全相同的代码。它在该控件中工作正常,但在这种情况下,它不起作用。此外,当我将此Value属性用作

Value="{Binding MeasuringTapeCalibrationDue,Mode=TwoWay}"

它在XAML编辑器中显示一条波浪线,说" Value属性已经由Calendar"注册。我有上面的代码只注册一次value属性。

1 个答案:

答案 0 :(得分:0)

您必须在另一个控件的依赖项属性注册中将GetType(Calendar)替换为GetType(OtherControl)

Public Class OtherControl

Public Shared ValueProperty As DependencyProperty =
   DependencyProperty.Register("Value", GetType(String), GetType(OtherControl))