81 lines
3.9 KiB
VB.net
81 lines
3.9 KiB
VB.net
Imports Microsoft.VisualBasic
|
|
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
|
|
|
|
|
|
Public Class WinGroupFooterViewController
|
|
Inherits ViewController(Of ListView)
|
|
Public Sub New()
|
|
MyBase.New()
|
|
|
|
'This call is required by the Component Designer.
|
|
InitializeComponent()
|
|
RegisterActions(components)
|
|
|
|
End Sub
|
|
Private Sub View_InfoSynchronized(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
|
|
If gridView IsNot Nothing Then
|
|
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 If
|
|
End Sub
|
|
Protected Overloads Overrides Sub OnViewControlsCreated()
|
|
MyBase.OnViewControlsCreated()
|
|
Dim displayFormat As String
|
|
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)
|
|
If modelColumn.DisplayFormat.ToString <> "" Then
|
|
If Mid(modelColumn.DisplayFormat, 1, 1) = "{" Then
|
|
displayFormat = modelColumn.DisplayFormat
|
|
gridView.GroupSummary.Add(modelColumnExtender.GroupFooterSummaryType, modelColumn.Id, gridColumn, displayFormat)
|
|
Else
|
|
displayFormat = String.Format("{{0:{0}}}", modelColumn.DisplayFormat)
|
|
gridView.GroupSummary.Add(modelColumnExtender.GroupFooterSummaryType, modelColumn.Id, gridColumn, displayFormat)
|
|
End If
|
|
|
|
Else
|
|
gridView.GroupSummary.Add(modelColumnExtender.GroupFooterSummaryType, modelColumn.Id, gridColumn)
|
|
End If
|
|
|
|
End If
|
|
Next modelColumn
|
|
End If
|
|
End If
|
|
End Sub
|
|
Protected Overloads Overrides Sub OnActivated()
|
|
MyBase.OnActivated()
|
|
AddHandler View.ModelSaved, AddressOf View_InfoSynchronized
|
|
End Sub
|
|
Protected Overloads Overrides Sub OnDeactivated()
|
|
RemoveHandler View.ModelSaved, AddressOf View_InfoSynchronized
|
|
MyBase.OnDeactivated()
|
|
End Sub
|
|
End Class
|
|
|
|
|
|
|