diff --git a/2025-11-13 11_35_00-Clipboard.png b/2025-11-13 11_35_00-Clipboard.png
deleted file mode 100644
index 2cf55a5..0000000
Binary files a/2025-11-13 11_35_00-Clipboard.png and /dev/null differ
diff --git a/2025-11-13 14_52_24-.png b/2025-11-13 14_52_24-.png
new file mode 100644
index 0000000..ea7984c
Binary files /dev/null and b/2025-11-13 14_52_24-.png differ
diff --git a/FasdDesktopUi/Basics/UserControls/ComboBoxPageable.xaml b/FasdDesktopUi/Basics/UserControls/ComboBoxPageable.xaml
index 3a05738..55280b7 100644
--- a/FasdDesktopUi/Basics/UserControls/ComboBoxPageable.xaml
+++ b/FasdDesktopUi/Basics/UserControls/ComboBoxPageable.xaml
@@ -199,14 +199,15 @@
-
-
+
+
diff --git a/FasdDesktopUi/Basics/UserControls/Ticket/CloseCaseDialogWithTicket.xaml.cs b/FasdDesktopUi/Basics/UserControls/Ticket/CloseCaseDialogWithTicket.xaml.cs
index 2860741..cb25345 100644
--- a/FasdDesktopUi/Basics/UserControls/Ticket/CloseCaseDialogWithTicket.xaml.cs
+++ b/FasdDesktopUi/Basics/UserControls/Ticket/CloseCaseDialogWithTicket.xaml.cs
@@ -1939,32 +1939,38 @@ namespace FasdDesktopUi.Basics.UserControls
}
break;
- case "ErrorTypeValue":
- if (DynamicStatusAdditionBorder.Child is CloseTicketDialog closeTicketDialog2)
- {
- if (closeTicketDialog2.SelectedErrorType == null || closeTicketDialog2.SelectedErrorType is ComboBoxItem b && b.Tag == null)
- {
- if (!_errors.ContainsKey(propertyName))
- _errors.Add(propertyName, cMultiLanguageSupport.GetItem("Dialog.CloseCase.ValidationErrorTypeEmpty"));
- }
- else
- {
- if (_errors.ContainsKey(propertyName))
- _errors.Remove(propertyName);
- }
- }
- break;
+ case "ErrorTypeValue":
+ if (DynamicStatusAdditionBorder.Child is CloseTicketDialog closeTicketDialog2)
+ {
+ if (closeTicketDialog2.SelectedErrorType == null || closeTicketDialog2.SelectedErrorType is ComboBoxItem b && b.Tag == null)
+ {
+ closeTicketDialog2.UpdateErrorTypeValidationState(true);
+ if (!_errors.ContainsKey(propertyName))
+ _errors.Add(propertyName, cMultiLanguageSupport.GetItem("Dialog.CloseCase.ValidationErrorTypeEmpty"));
+ }
+ else
+ {
+ closeTicketDialog2.UpdateErrorTypeValidationState(false);
+ if (_errors.ContainsKey(propertyName))
+ _errors.Remove(propertyName);
+ }
+ }
+ break;
- case "SelectedRoleAndPerson":
- if (DynamicStatusAdditionBorder.Child is ForwardTicketDialog forwardTicketDialog)
- {
- if ((forwardTicketDialog.SelectedPerson.Key == null || forwardTicketDialog.SelectedPerson.Value == null) &&
- (forwardTicketDialog.SelectedRole.Key == null || forwardTicketDialog.SelectedRole.Value == null))
- {
- if (!_errors.ContainsKey(propertyName))
- _errors.Add(propertyName, cMultiLanguageSupport.GetItem("Dialog.CloseCase.ValidationErrorRoleAndPersonEmpty"));
- }
- else
+ case "SelectedRoleAndPerson":
+ if (DynamicStatusAdditionBorder.Child is ForwardTicketDialog forwardTicketDialog)
+ {
+ bool hasError = (forwardTicketDialog.SelectedPerson.Key == null || forwardTicketDialog.SelectedPerson.Value == null) &&
+ (forwardTicketDialog.SelectedRole.Key == null || forwardTicketDialog.SelectedRole.Value == null);
+
+ forwardTicketDialog.UpdateResponsibleSelectionValidationState(hasError);
+
+ if (hasError)
+ {
+ if (!_errors.ContainsKey(propertyName))
+ _errors.Add(propertyName, cMultiLanguageSupport.GetItem("Dialog.CloseCase.ValidationErrorRoleAndPersonEmpty"));
+ }
+ else
{
if (_errors.ContainsKey(propertyName))
_errors.Remove(propertyName);
diff --git a/FasdDesktopUi/Basics/UserControls/Ticket/CloseTicketDialog.xaml b/FasdDesktopUi/Basics/UserControls/Ticket/CloseTicketDialog.xaml
index 1540a25..aa3f067 100644
--- a/FasdDesktopUi/Basics/UserControls/Ticket/CloseTicketDialog.xaml
+++ b/FasdDesktopUi/Basics/UserControls/Ticket/CloseTicketDialog.xaml
@@ -20,15 +20,22 @@
-
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
> GetRoleSelectionData(cF4SDHealthCardRawData.cHealthCardTable dataTable)
- {
+ private ObservableCollection> GetRoleSelectionData(cF4SDHealthCardRawData.cHealthCardTable dataTable)
+ {
try
{
if (dataTable is null || dataTable.Name != "M42Wpm-Ticket-Roles")
@@ -191,6 +206,30 @@ namespace FasdDesktopUi.Basics.UserControls
}
return null;
- }
- }
-}
+ }
+
+ public void UpdateResponsibleSelectionValidationState(bool hasError)
+ {
+ try
+ {
+ if (RoleValidationBorder != null)
+ {
+ if (defaultRoleBorderBrush == null)
+ defaultRoleBorderBrush = RoleValidationBorder.BorderBrush?.CloneCurrentValue();
+ RoleValidationBorder.BorderBrush = hasError ? ValidationBrush : defaultRoleBorderBrush;
+ }
+
+ if (PersonValidationBorder != null)
+ {
+ if (defaultPersonBorderBrush == null)
+ defaultPersonBorderBrush = PersonValidationBorder.BorderBrush?.CloneCurrentValue();
+ PersonValidationBorder.BorderBrush = hasError ? ValidationBrush : defaultPersonBorderBrush;
+ }
+ }
+ catch (Exception E)
+ {
+ LogException(E);
+ }
+ }
+ }
+}