2012-11-02 179 views
0

我有一个用户控件具有一些公共属性(如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中找到更多。

回答

3

我很抱歉。 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 
相关问题