2017-06-21 119 views
0

如何计算列中所有值的总和并将其显示在label.content中。计算列中值的总和

创建柱:

Dim c7 As New DataGridTextColumn() 
    c7.Header = "Iznos" 
    c7.Width = 100 
    c7.Binding = New Binding("Iznos") 
    gridRacun.Columns.Add(c7) 

类来创建项目:

Class Item 
Private _Cijena As String 
Private _Rabat As String 
Private _PC As String 
Private _Iznos As String 



Property Kolicina() As Integer 
    Get 
     Return _Kolicina 
    End Get 
    Set(ByVal value As Integer) 
     Me._Kolicina = value 
    End Set 
End Property 
Property Cijena() As Decimal 
    Get 
     Return _Cijena 
    End Get 
    Set(ByVal value As Decimal) 
     Me._Cijena = value 
    End Set 
End Property 

Property Iznos() As Decimal 
    Get 
     Return _Iznos 
    End Get 
    Set(ByVal value As Decimal) 
     Me._Iznos = Me._Kolicina * Me.Cijena 
    End Set 
End Property 
End Class 

添加项目到数据网格:

 Dim item = New Item With {.Cijena = Globals.cijenaTempG, .Rabat = Globals.rabatG, .PC = 1.0, .Iznos = 1.0} 
    gridRacun.Items.Add(item) 

我要计算一个名为 “Iznos” 列的SUM并将其显示在标签上。内容

+0

将项目添加到“DataGrid”时,可以计算总和。 –

回答

0

我想你可以遍历DataGridView中的行和计算的总和

dim sum = 0 
for each row as datagridviewrow in gricRacun.rows 
dim cellValue as double 
if not double.tryparse(row.cells(c7.index).value,cellValue) then cellValue = 0 
sum += cellValue 
next row 

你可以触发它的文字改变事件等事件,并指定其中你想

0

列绑定到物品的财产。总结这些属性并将其暴露给视图,而不是关注网格本身。

' Calculate the sum (using Linq). 
Dim sum = gridRacun.Items.OfType(Of Item)().Sum(Function(item) item.Iznos) 
' Update the label. 
labelSum.Content = sum 

现在剩下的就是确定何时触发计算。尝试收听集合更改的时间,或者更新任何项目的有关属性。