From a1506f36c9b2ff330cce64bb555fa2dba4a57744 Mon Sep 17 00:00:00 2001 From: Meik Date: Wed, 4 Feb 2026 19:01:24 +0100 Subject: [PATCH] aktueller Stand --- .../Services/SupportCase/SupportCase.cs | 22 ++--- .../HierarchicalSelectionControl.xaml | 6 +- .../HierarchicalSelectionControl.xaml.cs | 43 +++++++++ .../Pages/DetailsPage/DetailsPageView.xaml.cs | 88 ++++++++++--------- 4 files changed, 107 insertions(+), 52 deletions(-) diff --git a/FasdDesktopUi/Basics/Services/SupportCase/SupportCase.cs b/FasdDesktopUi/Basics/Services/SupportCase/SupportCase.cs index 8804e59..b6dec9b 100644 --- a/FasdDesktopUi/Basics/Services/SupportCase/SupportCase.cs +++ b/FasdDesktopUi/Basics/Services/SupportCase/SupportCase.cs @@ -235,11 +235,12 @@ namespace FasdDesktopUi.Basics.Services.SupportCase table.IsIncomplete = true; - foreach (var column in table.Columns.Values) - { - column.Values[0] = null; - column.IsIncomplete = true; - } + foreach (var column in table.Columns.Values) + { + if (column.Values != null && column.Values.Count > 0) + column.Values[0] = null; + column.IsIncomplete = true; + } invalidatedTables.Add(table); } @@ -251,11 +252,12 @@ namespace FasdDesktopUi.Basics.Services.SupportCase { table.IsIncomplete = true; - foreach (var column in table.Columns.Values) - { - column.Values[0] = null; - column.IsIncomplete = true; - } + foreach (var column in table.Columns.Values) + { + if (column.Values != null && column.Values.Count > 0) + column.Values[0] = null; + column.IsIncomplete = true; + } } } catch (Exception ex) diff --git a/FasdDesktopUi/Basics/UserControls/HierarchicalSelectionControl.xaml b/FasdDesktopUi/Basics/UserControls/HierarchicalSelectionControl.xaml index 2d94542..2ac439f 100644 --- a/FasdDesktopUi/Basics/UserControls/HierarchicalSelectionControl.xaml +++ b/FasdDesktopUi/Basics/UserControls/HierarchicalSelectionControl.xaml @@ -105,10 +105,12 @@ Padding="4" BorderBrush="{DynamicResource BackgroundColor.Menu.SubCategory.Hover}" BorderThickness="1"> - + BorderThickness="0" + PreviewMouseWheel="CategoryScrollViewer_PreviewMouseWheel"> VisibleItems => visibleItems; @@ -255,6 +256,48 @@ namespace FasdDesktopUi.Basics.UserControls if (searchTextBox != null) searchTextBox.TextChanged += SearchTextBox_TextChanged; } + + if (categoryScrollViewer == null) + { + categoryScrollViewer = ComboBoxControl.Template.FindName("PART_CategoryScrollViewer", ComboBoxControl) as ScrollViewer; + } + } + + private void CategoryScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e) + { + var scroller = categoryScrollViewer ?? sender as ScrollViewer; + if (scroller == null || scroller.ScrollableHeight <= 0) + return; + + var lines = SystemParameters.WheelScrollLines; + if (lines < 0) + { + if (e.Delta < 0) + scroller.PageDown(); + else + scroller.PageUp(); + e.Handled = true; + return; + } + + if (lines == 0) + { + scroller.ScrollToVerticalOffset(scroller.VerticalOffset - e.Delta); + e.Handled = true; + return; + } + + var direction = e.Delta < 0 ? 1 : -1; + var stepCount = Math.Max(1, Math.Abs(e.Delta) / 120) * lines; + for (var i = 0; i < stepCount; i++) + { + if (direction > 0) + scroller.LineDown(); + else + scroller.LineUp(); + } + + e.Handled = true; } private void UpdateDisplaySelection() diff --git a/FasdDesktopUi/Pages/DetailsPage/DetailsPageView.xaml.cs b/FasdDesktopUi/Pages/DetailsPage/DetailsPageView.xaml.cs index 130e384..3410c29 100644 --- a/FasdDesktopUi/Pages/DetailsPage/DetailsPageView.xaml.cs +++ b/FasdDesktopUi/Pages/DetailsPage/DetailsPageView.xaml.cs @@ -422,44 +422,52 @@ namespace FasdDesktopUi.Pages.DetailsPage #region BlurBorder Click - private void BlurBorder_Click() - { - try - { - Dispatcher.Invoke(() => - { - Panel.SetZIndex(NavigationHeadingUc, 1); - NavigationHeadingUc.ResetSelectors(); - - if (cConnectionStatusHelper.Instance?.ApiConnectionStatus == cConnectionStatusHelper.enumOnlineStatus.online) - { - SearchBarUserControl.Visibility = Visibility.Collapsed; - SearchBarUserControl.Clear(); - MenuBarUserControl.Visibility = Visibility.Visible; - } - - SearchResultBorder.Visibility = Visibility.Collapsed; - - OverlayBorder.Child = null; - OverlayBorder.Visibility = Visibility.Collapsed; - - if (BlurInvokers?.Count > 0) - { - foreach (var blurInvoker in BlurInvokers.ToArray()) - { - if (blurInvoker is Window blurInvokerWindow) - blurInvokerWindow.Hide(); - } - } - - IsBlurred = BlurInvokers?.Count > 0; - }); - } - catch (Exception E) - { - LogException(E); - } - } + private void BlurBorder_Click() + { + BlurBorder_Click(keepTicketCompletion: false); + } + + private void BlurBorder_Click(bool keepTicketCompletion) + { + try + { + Dispatcher.Invoke(() => + { + Panel.SetZIndex(NavigationHeadingUc, 1); + NavigationHeadingUc.ResetSelectors(); + + if (cConnectionStatusHelper.Instance?.ApiConnectionStatus == cConnectionStatusHelper.enumOnlineStatus.online) + { + SearchBarUserControl.Visibility = Visibility.Collapsed; + SearchBarUserControl.Clear(); + MenuBarUserControl.Visibility = Visibility.Visible; + } + + SearchResultBorder.Visibility = Visibility.Collapsed; + + OverlayBorder.Child = null; + OverlayBorder.Visibility = Visibility.Collapsed; + + if (BlurInvokers?.Count > 0) + { + foreach (var blurInvoker in BlurInvokers.ToArray()) + { + if (keepTicketCompletion && blurInvoker is TicketCompletion.TicketCompletion) + continue; + + if (blurInvoker is Window blurInvokerWindow) + blurInvokerWindow.Hide(); + } + } + + IsBlurred = BlurInvokers?.Count > 0; + }); + } + catch (Exception E) + { + LogException(E); + } + } private void BlurBorder_MouseUp(object sender, MouseButtonEventArgs e) { @@ -1039,8 +1047,8 @@ namespace FasdDesktopUi.Pages.DetailsPage Dispatcher.Invoke(UpdateHistoryWidth); - if (e is BooleanEventArgs booleanArgs && booleanArgs.BooleanArg is true) - BlurBorder_Click(); + if (e is BooleanEventArgs booleanArgs && booleanArgs.BooleanArg is true) + BlurBorder_Click(keepTicketCompletion: true); isDataChangedEventRunning = false;