AdministrationWindow: finally fix boolean changing error

This commit is contained in:
2023-09-01 13:11:42 +02:00
parent 56a0eb794e
commit 33d763d968
3 changed files with 14 additions and 14 deletions

View File

@ -212,9 +212,9 @@ namespace Elwig.Helpers {
} else if (input is Xceed.Wpf.Toolkit.CheckComboBox ccb) { } else if (input is Xceed.Wpf.Toolkit.CheckComboBox ccb) {
return ccb.SelectedItems.Cast<object>().ToArray(); return ccb.SelectedItems.Cast<object>().ToArray();
} else if (input is CheckBox cb) { } else if (input is CheckBox cb) {
return (cb.IsChecked != null ? (cb.IsChecked == true ? bool.TrueString : bool.FalseString) : null); return cb.IsChecked?.ToString();
} else if (input is RadioButton rb) { } else if (input is RadioButton rb) {
return (rb.IsChecked != null ? (rb.IsChecked == true ? bool.TrueString : bool.FalseString) : null); return rb.IsChecked?.ToString();
} else { } else {
return null; return null;
} }

View File

@ -190,13 +190,13 @@ namespace Elwig.Windows {
foreach (var ccb in CheckComboBoxInputs) foreach (var ccb in CheckComboBoxInputs)
OriginalValues[ccb] = ccb.SelectedItems.Cast<object>().ToArray(); OriginalValues[ccb] = ccb.SelectedItems.Cast<object>().ToArray();
foreach (var cb in CheckBoxInputs) 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) 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) { protected void SetOriginalValue(Control input, object? value) {
OriginalValues[input] = value; OriginalValues[input] = value is bool b ? b.ToString() : value;
if (InputHasChanged(input)) { if (InputHasChanged(input)) {
ControlUtils.SetInputChanged(input); ControlUtils.SetInputChanged(input);
} else { } else {
@ -204,13 +204,17 @@ namespace Elwig.Windows {
} }
} }
protected void SetOriginalValue(Control input) {
SetOriginalValue(input, ControlUtils.GetInputValue(input));
}
protected void UnsetOriginalValue(Control input) { protected void UnsetOriginalValue(Control input) {
OriginalValues.Remove(input); OriginalValues.Remove(input);
ControlUtils.ClearInputState(input); ControlUtils.ClearInputState(input);
} }
protected void SetDefaultValue(Control input, object? value) { protected void SetDefaultValue(Control input, object? value) {
DefaultValues[input] = value; DefaultValues[input] = value is bool b ? b.ToString() : value;
if (!InputHasChanged(input)) { if (!InputHasChanged(input)) {
if (InputIsNotDefault(input)) { if (InputIsNotDefault(input)) {
ControlUtils.SetInputNotDefault(input); ControlUtils.SetInputNotDefault(input);
@ -261,9 +265,9 @@ namespace Elwig.Windows {
} else if (input is CheckComboBox ccb) { } else if (input is CheckComboBox ccb) {
return !ccb.SelectedItems.Cast<object>().ToArray().SequenceEqual(((object[]?)OriginalValues[ccb]) ?? Array.Empty<object>()); return !ccb.SelectedItems.Cast<object>().ToArray().SequenceEqual(((object[]?)OriginalValues[ccb]) ?? Array.Empty<object>());
} else if (input is CheckBox cb) { } 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) { } 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 { } else {
return false; return false;
} }
@ -279,9 +283,9 @@ namespace Elwig.Windows {
} else if (input is CheckComboBox ccb) { } else if (input is CheckComboBox ccb) {
return !ccb.SelectedItems.Cast<object>().ToArray().SequenceEqual(((object[]?)DefaultValues[ccb]) ?? Array.Empty<object>()); return !ccb.SelectedItems.Cast<object>().ToArray().SequenceEqual(((object[]?)DefaultValues[ccb]) ?? Array.Empty<object>());
} else if (input is CheckBox cb) { } 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) { } 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 { } else {
return false; return false;
} }

View File

@ -78,10 +78,6 @@ namespace Elwig.Windows {
WeighingCButton.Visibility = Visibility.Hidden; WeighingCButton.Visibility = Visibility.Hidden;
WeighingDButton.Visibility = Visibility.Hidden; WeighingDButton.Visibility = Visibility.Hidden;
} }
if (App.Client.IsMatzen) {
SetDefaultValue(GerebeltGewogenInput, true);
}
} }
public DeliveryAdminWindow(int mgnr) : this() { public DeliveryAdminWindow(int mgnr) : this() {