function Update-ParametersPanel { Param( [System.Collections.Hashtable] $ConfigurationData ) foreach ($tabName in @("Parameters", "Variables")) { $existingTabs = @($tabControl.Controls | Where-Object { $_.Text -eq $tabName }) foreach ($tab in $existingTabs) { $tabControl.Controls.Remove($tab) $tab.Dispose() } } if ($null -eq $ConfigurationData) { return } if ($ConfigurationData.Contains("Parameters")) { $parametersTabPage = ( [TabPageBuilder]::new("Parameters"). Build() ) $gridView = ( [DataGridViewBuilder]::new(). SetHeaderColumns(@("Name", "Value", "Type", "Required")). SetHeaderColumnReadOnly("Name"). Build() ) foreach ($parameter in $ConfigurationData.Parameters.GetEnumerator()) { $value = $parameter.Value $gridView.Rows.Add( $parameter.Name, $value.Value, $value.Type, $value.Required ) | Out-Null } $parametersTabPage.Controls.Add($gridView) $tabControl.Controls.Add($parametersTabPage) } if ($ConfigurationData.Contains("Variables")) { $variablesTabPage = ( [TabPageBuilder]::new("Variables"). Build() ) $gridView = ( [DataGridViewBuilder]::new(). SetHeaderColumns(@("Name", "Value")). SetHeaderColumnReadOnly("Name"). Build() ) foreach ($variable in $ConfigurationData.Variables.GetEnumerator()) { $gridView.Rows.Add($variable.Name, $variable.Value) | Out-Null } $variablesTabPage.Controls.Add($gridView) $tabControl.Controls.Add($variablesTabPage) } }