Imports DevExpress.XtraGrid.Columns Imports DevExpress.XtraGrid.Views.Grid Imports MultiTool.Shared.Documents Imports MultiTool.Form.Positions Namespace Positions Public Class PositionGrid Public Shared Sub LoadPositionViewAndColumns(pView As GridView, pDocumentType As DocumentType) Dim oColumns As List(Of GridColumn) ' Create columns list depending on DocumentType Select Case pDocumentType Case DocumentType.Order oColumns = PositionColumns.AllColumns Case Else oColumns = New List(Of GridColumn) End Select ' Reset the grid pView.GridControl.DataSource = Nothing pView.GridControl.ForceInitialize() ' Add and adjust columns pView.Columns.AddRange(oColumns.ToArray()) pView.BestFitColumns() ' Set columns readonly that need it Dim oReadOnlyColumns = oColumns. Except(PositionColumns.WritableColumns). ToList() For Each oColumn As GridColumn In pView.Columns If oReadOnlyColumns.Contains(oColumn) Then oColumn.OptionsColumn.ReadOnly = True oColumn.OptionsColumn.AllowEdit = False Else oColumn.Caption &= " *" End If Next End Sub End Class End Namespace