fix radiobuttons

This commit is contained in:
MyDrift 2024-10-02 08:17:47 +02:00
parent 7d90ab8660
commit fdb156a450
2 changed files with 19 additions and 2 deletions

View File

@ -59,6 +59,8 @@ function Invoke-WPFUIElements {
$configHashtable[$_] = $configVariable.$_ $configHashtable[$_] = $configVariable.$_
} }
$radioButtonGroups = @{}
$organizedData = @{} $organizedData = @{}
# Iterate through JSON data and organize by panel and category # Iterate through JSON data and organize by panel and category
foreach ($entry in $configHashtable.Keys) { foreach ($entry in $configHashtable.Keys) {
@ -483,6 +485,20 @@ function Invoke-WPFUIElements {
} }
"RadioButton" { "RadioButton" {
# Check if a container for this GroupName already exists
if (-not $radioButtonGroups.ContainsKey($entryInfo.GroupName)) {
# Create a StackPanel for this group
$groupStackPanel = New-Object Windows.Controls.StackPanel
$groupStackPanel.Orientation = "Vertical"
# Add the group container to the ItemsControl
$itemsControl.Items.Add($groupStackPanel) | Out-Null
} else {
# Retrieve the existing group container
$groupStackPanel = $radioButtonGroups[$entryInfo.GroupName]
}
# Create the RadioButton
$radioButton = New-Object Windows.Controls.RadioButton $radioButton = New-Object Windows.Controls.RadioButton
$radioButton.Name = $entryInfo.Name $radioButton.Name = $entryInfo.Name
$radioButton.GroupName = $entryInfo.GroupName $radioButton.GroupName = $entryInfo.GroupName
@ -496,7 +512,8 @@ function Invoke-WPFUIElements {
$radioButton.IsChecked = $true $radioButton.IsChecked = $true
} }
$itemsControl.Items.Add($radioButton) | Out-Null # Add the RadioButton to the group container
$groupStackPanel.Children.Add($radioButton) | Out-Null
$sync[$entryInfo.Name] = $radioButton $sync[$entryInfo.Name] = $radioButton
} }

View File

@ -136,8 +136,8 @@ foreach ($category in $uniqueCategories) {
# Now call the function with the final merged config # Now call the function with the final merged config
Invoke-WPFUIElements -configVariable $sync.configs.appnavigation -targetGridName "appscategory" -columncount 1 Invoke-WPFUIElements -configVariable $sync.configs.appnavigation -targetGridName "appscategory" -columncount 1
Invoke-WPFUIElements -configVariable $sync.configs.applications -targetGridName "appspanel" -columncount 1 Invoke-WPFUIElements -configVariable $sync.configs.applications -targetGridName "appspanel" -columncount 1
Invoke-WPFUIElements -configVariable $sync.configs.tweaks -targetGridName "tweakspanel" -columncount 2 Invoke-WPFUIElements -configVariable $sync.configs.tweaks -targetGridName "tweakspanel" -columncount 2
Invoke-WPFUIElements -configVariable $sync.configs.feature -targetGridName "featurespanel" -columncount 2 Invoke-WPFUIElements -configVariable $sync.configs.feature -targetGridName "featurespanel" -columncount 2