|
|
|
Here it is some code that shows how to use reflection to dynamically set an event handler for a class' event. |
Click here to copy the following block | Sub TestSub() Dim pe As New Person() Dim peEv As EventInfo = pe.GetType.GetEvent("PropertyChanged") Dim peDel As [Delegate] = [Delegate].CreateDelegate(peEv.EventHandlerType, _ Me, "PropertyChanged") peEv.AddEventHandler(pe, peDel) pe.GetType.InvokeMember("Name", BindingFlags.SetProperty, Nothing, pe, _ New Object() {"John"}) peEv.RemoveEventHandler(pe, peDel) End Sub Private Sub PropertyChanged(ByVal propertyName As String, _ ByVal newValue As Object) MessageBox.Show("Property " & propertyName & _ " has changed. The new value is " & newValue.ToString) End Sub Class Person Event PropertyChanged(ByVal propertyName As String, _ ByVal newValue As Object) Dim m_Name As String Property Name() As String Get Return m_Name End Get Set(ByVal Value As String) If Value <> m_Name Then m_Name = Value RaiseEvent PropertyChanged("Name", m_Name) End If End Set End Property End Class |
|
|
|
Submitted By :
Nayan Patel
(Member Since : 5/26/2004 12:23:06 PM)
|
|
|
Job Description :
He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting. |
View all (893) submissions by this author
(Birth Date : 7/14/1981 ) |
|
|