/
WinGroupFooterViewController.vb
55 lines (53 loc) · 2.5 KB
/
WinGroupFooterViewController.vb
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
Imports System
Imports DevExpress.Data
Imports DevExpress.ExpressApp
Imports DevExpress.ExpressApp.Model
Imports DevExpress.ExpressApp.Win.Editors
Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraGrid.Columns
Namespace ExtendModel.Module.Win.Controllers
Public Class WinGroupFooterViewController
Inherits ViewController(Of ListView)
Private Sub View_ModelSaved(ByVal sender As Object, ByVal e As EventArgs)
Dim modelListView As IModelListViewExtender = TryCast(View.Model, IModelListViewExtender)
If modelListView IsNot Nothing AndAlso modelListView.IsGroupFooterVisible Then
Dim gridListEditor As GridListEditor = TryCast(View.Editor, GridListEditor)
If gridListEditor IsNot Nothing Then
Dim gridView As GridView = gridListEditor.GridView
For i As Integer = 0 To gridView.GroupSummary.Count - 1
Dim modelColumn As IModelColumnExtender = TryCast(CType(View.Model.Columns, IModelList(Of IModelColumn))(gridView.GroupSummary(i).FieldName), IModelColumnExtender)
If modelColumn IsNot Nothing Then
modelColumn.GroupFooterSummaryType = gridView.GroupSummary(i).SummaryType
End If
Next i
End If
End If
End Sub
Protected Overrides Sub OnViewControlsCreated()
MyBase.OnViewControlsCreated()
Dim modelListView As IModelListViewExtender = TryCast(View.Model, IModelListViewExtender)
If modelListView IsNot Nothing AndAlso modelListView.IsGroupFooterVisible Then
Dim gridListEditor As GridListEditor = TryCast(View.Editor, GridListEditor)
If gridListEditor IsNot Nothing Then
Dim gridView As GridView = gridListEditor.GridView
gridView.OptionsView.GroupFooterShowMode = GroupFooterShowMode.VisibleAlways
For Each modelColumn As IModelColumn In View.Model.Columns
Dim modelColumnExtender As IModelColumnExtender = TryCast(modelColumn, IModelColumnExtender)
If modelColumnExtender IsNot Nothing AndAlso modelColumnExtender.GroupFooterSummaryType <> SummaryItemType.None Then
Dim gridColumn As GridColumn = gridView.Columns(modelColumn.ModelMember.MemberInfo.BindingName)
gridView.GroupSummary.Add(modelColumnExtender.GroupFooterSummaryType, modelColumn.Id, gridColumn)
End If
Next modelColumn
End If
End If
End Sub
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
AddHandler View.ModelSaved, AddressOf View_ModelSaved
End Sub
Protected Overrides Sub OnDeactivated()
RemoveHandler View.ModelSaved, AddressOf View_ModelSaved
MyBase.OnDeactivated()
End Sub
End Class
End Namespace