function Invoke-WPFSelectedCheckboxesUpdate ($type, $checkboxName) { $listName = switch -Regex ($checkboxName) { '^WPFInstall' { 'selectedApps' } '^WPFTweaks' { 'selectedTweaks' } '^WPFToggle' { 'selectedToggles' } '^WPFFeature' { 'selectedFeatures' } '^WPFAppx' { 'selectedAppx' } } $selectionChanged = $false if ($type -eq "Add") { if (-not $sync.$listName.Contains($checkboxName)) { $sync.$listName.Add($checkboxName) $selectionChanged = $true } } else { $selectionChanged = $sync.$listName.Remove($checkboxName) } if ($listName -eq "selectedApps" -and $selectionChanged) { $sync.WPFselectedAppsButton.Content = "Selected Apps: $($sync.selectedApps.Count)" $sync.selectedAppsstackPanel.Children.Clear() $sync.selectedApps | Sort-Object | ForEach-Object { Add-SelectedAppsMenuItem -name $sync.configs.applicationsHashtable.$_.Content -key $_ } } }