2015-08-11 5 views
-2

gridview У меня есть для счета-фактуры нужно просуммировать ячейкиВыбранная строка Datagrid сумма ячейки

Number  Description  Price  Qty Total  Discount Grand Total 
5050  Screen   50  1  50  5   45 
6060  Case    100  2  200  50   150 

При изменении значения price, qty или discount, мне нужно динамически вычислить общую и итога.

+0

жаль, что я хочу, чтобы каждая ячейка обновлялась, когда я меняю любое значение total = price * qty – MAXSoft

+0

total total = total-discount – MAXSoft

ответ

0

Я сделал небольшой пример ваших потребностей (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 или что-то подобное.

Смежные вопросы