private void OnClosing(object sender, CancelEventArgs e) {
var unsaved = Superintendent.Instance.UnsavedChanges();
if (unsaved.Count == 0) return;
var result = ModernDialog.ShowMessage(
$"{AppStrings.Main_UnsavedChanges}\n\n{unsaved.Select(x => $" • {x}").JoinToString(Environment.NewLine)}",
AppStrings.Main_UnsavedChangesHeader, MessageBoxButton.YesNoCancel);
if (result == MessageBoxResult.Yes) {
Superintendent.Instance.SaveAll();
} else if (result != MessageBoxResult.No) {
e.Cancel = true;
}
}