1

我有一个用户控件,它具有一些公共属性(如 Dirty :boolean)和一个更改该属性的事件(ControlValueChanged)。
我将该控件添加到表单中。在表单中,我有一个按钮 (btnOK),我想将按钮的 Enabled 属性绑定到 Dirty 属性。
我阅读了http://msdn.microsoft.com/en-us/library/ms229614.aspx但我在将其实施到我的项目时遇到了一些问题。
我的代码形式为:

btnOK.DataBindings.Add("Enabled", Me.wwdp, "Dirty") 'wwdp is my user Control

因此,根据我的研究,我必须添加我的自定义控件:

Imports System.ComponentModel

Public Class wwDynamicPanel

Implements INotifyPropertyChanged

Public Event PropertyChanged As PropertyChangedEventHandler _
    Implements INotifyPropertyChanged.PropertyChanged


 Public Property Dirty As Boolean
    Get
        Return mbDirty
    End Get
    Set(ByVal value As Boolean)
        mbDirty = value
        NotifyPropertyChanged()
    End Set

End Property

Private Sub NotifyPropertyChanged(<CallerMemberName()> Optional ByVal propertyName As String = Nothing)
    RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
End Sub

我收到一个错误:未定义类型“CallerMemberName”。
问题是我在 msdn 中没有找到更多内容。

4

1 回答 1

4

我很抱歉。MSDN 中的链接适用于框架 4.5
,我找到了正确的http://msdn.microsoft.com/en-us/library/ms184414(v=vs.100).aspx。对于我的框架,我解决了这个问题。
我留下这个问题是因为其他人觉得它很有用。
所以工作代码是:

Imports System.ComponentModel

Public Class wwDynamicPanel

Implements INotifyPropertyChanged

Public Event PropertyChanged As PropertyChangedEventHandler _
   Implements INotifyPropertyChanged.PropertyChanged


Public Property Dirty As Boolean
   Get
      Return mbDirty
   End Get
   Set(ByVal value As Boolean)
      mbDirty = value
      NotifyPropertyChanged("Dirty")
   End Set
End Property

Private Sub NotifyPropertyChanged(ByVal info As String)
     RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
End Sub
于 2012-11-02T14:56:15.490 回答