|
@@ -26,8 +26,11 @@ namespace InABox.DynamicGrid
|
|
|
|
|
|
public event EventHandler OnChanged;
|
|
|
|
|
|
+ private bool bChanged = false;
|
|
|
+
|
|
|
public void DoChanged()
|
|
|
{
|
|
|
+ bChanged = true;
|
|
|
//OKButton.IsEnabled = true;
|
|
|
//CancelButton.IsEnabled = true;
|
|
|
OnChanged?.Invoke(this, EventArgs.Empty);
|
|
@@ -59,22 +62,20 @@ namespace InABox.DynamicGrid
|
|
|
get => Editor.ReadOnly;
|
|
|
set
|
|
|
{
|
|
|
- OKButton.IsEnabled = !DisableButtons && !value;
|
|
|
- CancelButton.IsEnabled = !DisableButtons && !value;
|
|
|
Editor.ReadOnly = value;
|
|
|
+ UpdateButtonEnabled();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private bool _disableButtons = false;
|
|
|
+ private bool _disableIfUnchanged = false;
|
|
|
|
|
|
- public bool DisableButtons
|
|
|
+ public bool DisableOKIfUnchanged
|
|
|
{
|
|
|
- get => _disableButtons;
|
|
|
+ get => _disableIfUnchanged;
|
|
|
set
|
|
|
{
|
|
|
- _disableButtons = value;
|
|
|
- OKButton.IsEnabled = !ReadOnly && !value;
|
|
|
- CancelButton.IsEnabled = !ReadOnly && !value;
|
|
|
+ _disableIfUnchanged = value;
|
|
|
+ UpdateButtonEnabled();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -103,6 +104,12 @@ namespace InABox.DynamicGrid
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void UpdateButtonEnabled()
|
|
|
+ {
|
|
|
+ OKButton.IsEnabled = !ReadOnly && (!DisableOKIfUnchanged || bChanged);
|
|
|
+ CancelButton.IsEnabled = !ReadOnly;
|
|
|
+ }
|
|
|
+
|
|
|
private void UpdateButtonHighlight(Button button, Color border, Color background, Color foreground)
|
|
|
{
|
|
|
button.BorderBrush = _highlightButtons
|