AdministrationWindow: finally fix boolean changing error
This commit is contained in:
@ -190,13 +190,13 @@ namespace Elwig.Windows {
|
||||
foreach (var ccb in CheckComboBoxInputs)
|
||||
OriginalValues[ccb] = ccb.SelectedItems.Cast<object>().ToArray();
|
||||
foreach (var cb in CheckBoxInputs)
|
||||
OriginalValues[cb] = (cb.IsChecked != null ? (cb.IsChecked == true ? bool.TrueString : bool.FalseString) : null);
|
||||
OriginalValues[cb] = cb.IsChecked?.ToString();
|
||||
foreach (var rb in RadioButtonInputs)
|
||||
OriginalValues[rb] = (rb.IsChecked != null ? (rb.IsChecked == true ? bool.TrueString : bool.FalseString) : null);
|
||||
OriginalValues[rb] = rb.IsChecked?.ToString();
|
||||
}
|
||||
|
||||
protected void SetOriginalValue(Control input, object? value) {
|
||||
OriginalValues[input] = value;
|
||||
OriginalValues[input] = value is bool b ? b.ToString() : value;
|
||||
if (InputHasChanged(input)) {
|
||||
ControlUtils.SetInputChanged(input);
|
||||
} else {
|
||||
@ -204,13 +204,17 @@ namespace Elwig.Windows {
|
||||
}
|
||||
}
|
||||
|
||||
protected void SetOriginalValue(Control input) {
|
||||
SetOriginalValue(input, ControlUtils.GetInputValue(input));
|
||||
}
|
||||
|
||||
protected void UnsetOriginalValue(Control input) {
|
||||
OriginalValues.Remove(input);
|
||||
ControlUtils.ClearInputState(input);
|
||||
}
|
||||
|
||||
protected void SetDefaultValue(Control input, object? value) {
|
||||
DefaultValues[input] = value;
|
||||
DefaultValues[input] = value is bool b ? b.ToString() : value;
|
||||
if (!InputHasChanged(input)) {
|
||||
if (InputIsNotDefault(input)) {
|
||||
ControlUtils.SetInputNotDefault(input);
|
||||
@ -261,9 +265,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 (string?)OriginalValues[cb] != (cb.IsChecked != null ? (cb.IsChecked == true ? bool.TrueString : bool.FalseString) : null);
|
||||
return (string?)OriginalValues[cb] != cb.IsChecked?.ToString();
|
||||
} else if (input is RadioButton rb) {
|
||||
return (string?)OriginalValues[rb] != (rb.IsChecked != null ? (rb.IsChecked == true ? bool.TrueString : bool.FalseString) : null);
|
||||
return (string?)OriginalValues[rb] != rb.IsChecked?.ToString();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
@ -279,9 +283,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 (string?)DefaultValues[cb] != (cb.IsChecked != null ? (cb.IsChecked == true ? bool.TrueString : bool.FalseString) : null);
|
||||
return (string?)DefaultValues[cb] != cb.IsChecked?.ToString();
|
||||
} else if (input is RadioButton rb) {
|
||||
return (string?)DefaultValues[rb] != (rb.IsChecked != null ? (rb.IsChecked == true ? bool.TrueString : bool.FalseString) : null);
|
||||
return (string?)DefaultValues[rb] != rb.IsChecked?.ToString();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
Reference in New Issue
Block a user