Imports System.Collections.ObjectModel Imports EgtUILib Imports EgtWPFLib5 Friend Module DataGridColumnsIniFile Public m_sDataGridColumnsIniFile As String ' funzione per ottenere dal file INI le colonne da caricare nelle EgtDataGrid del programma Public Function GetPrivateProfileColumns(ParentDGName As String, ByRef ocColumns As ObservableCollection(Of EgtDataGridColumn)) As Boolean Dim colIndex As Integer = 0 Dim str = String.Empty While EgtUILib.GetPrivateProfileString(ParentDGName, colIndex, String.Empty, str, m_sDataGridColumnsIniFile) > 0 Dim sColumnParams() As String = str.Split(","c) ' verifico numero minimo di parametri If sColumnParams.Count >= 9 Then ' cancello spazi For index = 0 To sColumnParams.Count - 1 sColumnParams(index) = sColumnParams(index).Trim() Next ' creo colonna Dim sName = sColumnParams(0) Dim bReorder As Boolean = sColumnParams(1).Equals("1") Dim bResize As Boolean = sColumnParams(2).Equals("1") Dim bSort As Boolean = sColumnParams(3).Equals("1") Dim bIsReadOnly As Boolean = sColumnParams(4).Equals("1") Dim Width As Double Dim WidthType As DataGridLengthUnitType StringToDouble(sColumnParams(5), Width) Integer.TryParse(sColumnParams(6), WidthType) Dim bVisible As Boolean = sColumnParams(7).Equals("1") Dim bCanUserEditVisible As Boolean = sColumnParams(8).Equals("1") If bVisible Then ocColumns.Add(New EgtDataGridColumn(ParentDGName, sName, bReorder, bResize, bSort, bIsReadOnly, New DataGridLength(Width, WidthType), bVisible, bCanUserEditVisible)) Else Exit While End If End If colIndex += 1 End While Return ocColumns.Count > 0 End Function ' funzione per ottenere dal file INI le colonne da caricare nella DataGrid usata per customizzare le proprietà delle colonne delle EgtDataGrid del programma Public Function GetPrivateProfileColumns(ParentDGName As String, ByRef ocColumns As ObservableCollection(Of IniDataGridColumn)) As Boolean Dim colIndex As Integer = 0 Dim str = String.Empty While EgtUILib.GetPrivateProfileString(ParentDGName, colIndex, String.Empty, str, m_sDataGridColumnsIniFile) > 0 Dim sColumnParams() As String = str.Split(","c) ' verifico numero minimo di parametri If sColumnParams.Count >= 9 Then ' cancello spazi For index = 0 To sColumnParams.Count - 1 sColumnParams(index) = sColumnParams(index).Trim() Next ' creo colonna Dim sName = sColumnParams(0) Dim bReorder As Boolean = sColumnParams(1).Equals("1") Dim bResize As Boolean = sColumnParams(2).Equals("1") Dim bSort As Boolean = sColumnParams(3).Equals("1") Dim bIsReadOnly As Boolean = sColumnParams(4).Equals("1") Dim Width As Double Dim WidthType As DataGridLengthUnitType StringToDouble(sColumnParams(5), Width) Integer.TryParse(sColumnParams(6), WidthType) Dim bVisible As Boolean = sColumnParams(7).Equals("1") Dim bCanUserEditVisible As Boolean = sColumnParams(8).Equals("1") ocColumns.Add(New IniDataGridColumn(ParentDGName, colIndex, sName, bReorder, bResize, bSort, bIsReadOnly, New DataGridLength(Width, WidthType), bVisible, bCanUserEditVisible)) End If colIndex += 1 End While Return ocColumns.Count > 0 End Function ' funzione che ottiene dal file INI la singola proprietà legata ad una specifica colonna Public Function GetPrivateProfileColumnProperty(ParentDGName As String, ocColumns As ObservableCollection(Of IniDataGridColumn), DisplayIndex As Integer, PropertyIndex As EgtDGColumnProperty) As String Dim str = String.Empty If EgtUILib.GetPrivateProfileString(ParentDGName, DisplayIndex, String.Empty, str, m_sDataGridColumnsIniFile) > 0 Then Dim sColumnParams() As String = str.Split(","c) ' verifico numero minimo di parametri If sColumnParams.Count >= 9 Then ' cancello spazi For index = 0 To sColumnParams.Count - 1 sColumnParams(index) = sColumnParams(index).Trim() Next If PropertyIndex > -1 AndAlso PropertyIndex < sColumnParams.Count Then Return sColumnParams(PropertyIndex) End If End If Return "" End Function Public Function WriteColumnPrivateProfileParam(ParentDataGridName As String, DisplayIndex As String, sColumnParams As String) As Boolean Return WritePrivateProfileString(ParentDataGridName, DisplayIndex, sColumnParams, m_sDataGridColumnsIniFile) End Function Public Enum EgtDGColumnProperty NAME = 0 REORDER = 1 RESIZE = 2 SORT = 3 ISREADONLY = 4 WIDTH = 5 WIDTHTYPE = 6 VISIBLE = 7 EDITVISIBLE = 8 End Enum End Module