Imports System.Drawing Imports DevExpress.XtraGrid.Views.Grid Imports DevExpress.XtraTreeList Public Class GridBuilder Private ReadOnly EvenRowBackColor = Color.Gainsboro Public ReadOnly Property Views As New List(Of GridView) Public Sub New(GridView As GridView) Views.Add(GridView) End Sub Public Sub New(GridViews As List(Of GridView)) Views.AddRange(GridViews) End Sub ''' ''' Applies common properties to all GridViews ''' Public Function WithDefaults() As GridBuilder For Each oView In Views WithDefaults(oView) Next Return Me End Function ''' ''' Applies common properties to the supplied GridView ''' Public Function WithDefaults(GridView As GridView) As GridBuilder GridView.OptionsView.EnableAppearanceEvenRow = True GridView.OptionsView.ShowAutoFilterRow = True GridView.Appearance.EvenRow.BackColor = EvenRowBackColor GridView.Appearance.EvenRow.Options.UseBackColor = True Return Me End Function ''' ''' Applies common properties to the supplied TreeList ''' Public Function WithDefaults(TreeList As TreeList) As GridBuilder TreeList.OptionsView.EnableAppearanceEvenRow = True TreeList.OptionsView.ShowAutoFilterRow = True TreeList.Appearance.EvenRow.BackColor = EvenRowBackColor TreeList.Appearance.EvenRow.Options.UseBackColor = True Return Me End Function ''' ''' Applies read-only properties to all GridViews ''' Public Function WithReadOnlyOptions() As GridBuilder For Each oView In Views WithReadOnlyOptions(oView) Next Return Me End Function ''' ''' Applies read-only properties to the supplied GridView ''' Public Function WithReadOnlyOptions(GridView As GridView) As GridBuilder GridView.OptionsBehavior.Editable = False GridView.OptionsBehavior.ReadOnly = True Return Me End Function ''' ''' Applies read-only properties to the supplied TreeList ''' Public Function WithReadOnlyOptions(TreeList As TreeList) As GridBuilder TreeList.OptionsBehavior.Editable = False TreeList.OptionsBehavior.ReadOnly = True Return Me End Function End Class