Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Class EquipmentCollection
- {
- Public Property EquipmentList As List(Of Equipment)
- }
- Public Class Equipment
- {
- Public Event CalculateFired
- Public Sub Calculate
- RaiseEvent CalculateFired
- End Sub
- }
- Public Class Form1
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- Dim ec As New EquipmentCollection
- Dim eq As New Equipment
- Dim el As New List(Of Equipment)
- eq = New Equipment
- el.Add(eq)
- eq = New Equipment
- el.Add(eq)
- eq = New Equipment
- el.Add(eq)
- eq = New Equipment
- el.Add(eq)
- eq = New Equipment
- el.Add(eq)
- eq = New Equipment
- el.Add(eq)
- eq = New Equipment
- el.Add(eq)
- ec.EquipmentList = el
- ec.EquipmentList.Item(2).Calculate()
- End Sub
- End Class
- Public Class EquipmentCollection
- Private WithEvents _EquipmentList As New List(Of Equipment)
- Public Property EquipmentList As List(Of Equipment)
- Get
- Return _EquipmentList
- End Get
- Set(value As List(Of Equipment))
- Dim counter As Integer
- _EquipmentList = value
- For counter = 0 To _EquipmentList.Count - 1
- AddHandler _EquipmentList.Item(counter).CalculateFired, AddressOf HandleCalculateFired
- Next
- End Set
- End Property
- Private Sub HandleCalculateFired()
- MsgBox("calc was fired")
- End Sub
- End Class
- Public Class Equipment
- Public Event CalculateFired()
- Public Sub Calculate()
- RaiseEvent CalculateFired()
- End Sub
- End Class
- Public Class Equipment
- Implements INotifyPropertyChanged
- Public Event PropertyChanged(ByVal sender As Object, _
- ByVal e As PropertyChangedEventArgs) _
- Implements INotifyPropertyChanged.PropertyChanged
- Private _Calculation As Decimal
- Public Sub Calculate(ByVal newNumber As Decimal)
- Me.Calculation = newNumber
- End Sub
- Property Calculation() As Decimal
- Get
- Return _Calculation
- End Get
- Set(ByVal value As Decimal)
- If value <> _Calculation Then
- _Calculation = value
- RaiseEvent PropertyChanged(Me, _
- New PropertyChangedEventArgs("Calculation"))
- End If
- End Set
- End Property
- End Class
- Public Class EquipmentCollection
- Private WithEvents _EquipmentList As New BindingList(Of Equipment)
- Public ReadOnly Property EquipmentList() As BindingList(Of Equipment)
- Get
- Return _EquipmentList
- End Get
- End Property
- Private Sub EquipmentList_ListChanged(ByVal sender As Object, _
- ByVal e As ListChangedEventArgs) _
- Handles _EquipmentList.ListChanged
- If e.ListChangedType = ListChangedType.ItemChanged Then
- If e.PropertyDescriptor IsNot Nothing AndAlso _
- e.PropertyDescriptor.Name = "Calculation" Then
- MessageBox.Show("New Calculation = " & _
- _EquipmentList.Item(e.NewIndex).Calculation.ToString)
- End If
- End If
- End Sub
- End Class
- Dim ec As New EquipmentCollection
- ec.EquipmentList.Add(New Equipment)
- ec.EquipmentList.Add(New Equipment)
- ec.EquipmentList.Last.Calculate(110.5)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement