AdministrationWindow: Fix default value handling

This commit is contained in:
2023-08-30 14:54:16 +02:00
parent 1f377483a5
commit 5aa8e45652
5 changed files with 52 additions and 9 deletions

View File

@ -220,6 +220,10 @@ namespace Elwig.Windows {
}
}
protected void SetDefaultValue(Control input) {
SetDefaultValue(input, ControlUtils.GetInputValue(input));
}
protected void UnsetDefaultValue(Control input) {
DefaultValues.Remove(input);
if (!InputHasChanged(input)) {
@ -257,9 +261,9 @@ namespace Elwig.Windows {
} else if (input is CheckComboBox ccb) {
return !ccb.SelectedItems.Cast<object>().ToArray().SequenceEqual(((object[]?)OriginalValues[ccb]) ?? Array.Empty<object>());
} else if (input is CheckBox cb) {
return (OriginalValues[cb] != null) != (cb.IsChecked ?? false);
return OriginalValues[cb] != (object?)cb.IsChecked;
} else if (input is RadioButton rb) {
return (OriginalValues[rb] != null) != (rb.IsChecked ?? false);
return OriginalValues[rb] != (object?)rb.IsChecked;
} else {
return false;
}
@ -275,9 +279,9 @@ namespace Elwig.Windows {
} else if (input is CheckComboBox ccb) {
return !ccb.SelectedItems.Cast<object>().ToArray().SequenceEqual(((object[]?)DefaultValues[ccb]) ?? Array.Empty<object>());
} else if (input is CheckBox cb) {
return (DefaultValues[cb] != null) != (cb.IsChecked ?? false);
return DefaultValues[cb] != (object?)cb.IsChecked;
} else if (input is RadioButton rb) {
return (DefaultValues[rb] != null) != (rb.IsChecked ?? false);
return DefaultValues[rb] != (object?)rb.IsChecked;
} else {
return false;
}