Я сделал небольшой пример ваших потребностей (https://github.com/anderson-rancan/stackoverflow_31950624), так:
потребительских свойств, поэтому связывание может правильно использовать ваш код
Private _description As String
Public Property Description() As String
Get
Return Me._description
End Get
Set(ByVal value As String)
If Not (value = Me._description) Then
Me._description = value
Me.NotifyPropertyChanged()
End If
End Set
End Property
использовать INotifyPropertyChanged чтобы обновить ваши данные вашего формы и других конструкций
Public MustInherit Class BusinessObject
Implements INotifyPropertyChanged
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Protected Sub NotifyPropertyChanged(<CallerMemberName()> Optional ByVal propertyName As String = Nothing)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
End Sub
End Class
a д.д. свои правила BUSSINESS на ваших объектах BUSSINESS, так что они могут обновить себя
Private Sub Recalculate()
Me.GrandTotal = Me._shopItems.Sum(Function(item) item.GrandTotal)
End Sub
добавить привязку данных в форму объектов
Me._binding = New BindingSource()
Me._binding.DataSource = New Shop()
Me._binding.DataMember = "ShopItems"
Me.ShopItemsDataGridView.DataSource = Me._binding
Me.ShopItemsDataGridView.AutoGenerateColumns = True
С этими методами, вы будете иметь возможность автоматического пересчитайте свои итоги и обновите форму.
Пожалуйста, если вам нужна дополнительная информация, Google это для WinForms DataBinding или что-то подобное.
жаль, что я хочу, чтобы каждая ячейка обновлялась, когда я меняю любое значение total = price * qty – MAXSoft
total total = total-discount – MAXSoft