1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
Public Class Node
Private intX As Integer = 0
Private strName As String = ""
Event Modified(ByVal sender As Node, ByVal oldValue As Integer, ByVal newValue As Integer)
Public Sub New(ByVal IName As String)
strName = IName
End Sub
ReadOnly Property Name() As String
Get
Return strName
End Get
End Property
Public Property X() As Integer
Get
Return intX
End Get
Set(ByVal value As Integer)
Dim intOldValue As Integer = intX
intX = value
RaiseEvent Modified(Me, intOldValue, intX)
End Set
End Property
End Class
Public Class LNode
Inherits List(Of Node)
Event Modified(ByVal sender As Node, ByVal oldValue As Integer, ByVal newValue As Integer)
Public Overloads Sub Add(ByVal item As Node)
AddHandler item.Modified, AddressOf RaiseModifiedEvent
MyBase.Add(item)
End Sub
Private Sub RaiseModifiedEvent(ByVal sender As Node, ByVal oldValue As Integer, ByVal newValue As Integer)
RaiseEvent Modified(sender, oldValue, newValue)
End Sub
End Class
Public Class Go
Shared Sub main()
Dim lnLnode As New LNode
lnLnode.Add(New Node("NodeA"))
lnLnode.Add(New Node("NodeB"))
lnLnode.Add(New Node("NodeC"))
AddHandler lnLnode.Modified, AddressOf ListOfNodeModifier
lnLnode.Item(1).X = 2
lnLnode.Item(0).X = 3
lnLnode.Item(1).X = 4
lnLnode.Item(2).X = 5
End Sub
Shared Sub ListOfNodeModifier(ByVal sender As Node, ByVal oldValue As Integer, ByVal newValue As Integer)
MsgBox("Un node modifié ! node : " & sender.Name & " Old : " & oldValue & " New : " & newValue)
End Sub
End Class |
Partager