From 8bf8362480b3e8d9c581f2048b08d64d9b06e01b Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Tue, 30 Apr 2024 13:02:45 +0200 Subject: [PATCH] App: Replace DataTemplate/ControlTemplate with TemplateSelector --- Elwig/App.xaml | 42 ++++--------------- Elwig/Controls/WineOriginTemplateSelector.cs | 15 +++++++ .../WineQualityLevelTemplateSelector.cs | 15 +++++++ Elwig/Controls/WineVarietyTemplateSelector.cs | 15 +++++++ Elwig/Windows/BaseDataWindow.xaml | 8 +++- Elwig/Windows/DeliveryAdminWindow.xaml | 22 +++++++--- 6 files changed, 77 insertions(+), 40 deletions(-) create mode 100644 Elwig/Controls/WineOriginTemplateSelector.cs create mode 100644 Elwig/Controls/WineQualityLevelTemplateSelector.cs create mode 100644 Elwig/Controls/WineVarietyTemplateSelector.cs diff --git a/Elwig/App.xaml b/Elwig/App.xaml index 01309ea..b76f4bd 100644 --- a/Elwig/App.xaml +++ b/Elwig/App.xaml @@ -29,25 +29,17 @@ - + - - + + - - - - - - - - @@ -63,25 +55,17 @@ - + - - + + - - - - - - - - @@ -90,24 +74,16 @@ - + - - + + - - - - - - - - diff --git a/Elwig/Controls/WineOriginTemplateSelector.cs b/Elwig/Controls/WineOriginTemplateSelector.cs new file mode 100644 index 0000000..f350ca2 --- /dev/null +++ b/Elwig/Controls/WineOriginTemplateSelector.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; +using System.Windows; + +namespace Elwig.Controls { + public class WineOriginTemplateSelector : DataTemplateSelector { + public override DataTemplate SelectTemplate(object item, DependencyObject container) { + ContentPresenter presenter = (ContentPresenter)container; + if (presenter.TemplatedParent is ComboBox) { + return (DataTemplate)presenter.FindResource("WineOriginTemplateCollapsed"); + } else { + return (DataTemplate)presenter.FindResource("WineOriginTemplateExpanded"); + } + } + } +} \ No newline at end of file diff --git a/Elwig/Controls/WineQualityLevelTemplateSelector.cs b/Elwig/Controls/WineQualityLevelTemplateSelector.cs new file mode 100644 index 0000000..4c7b763 --- /dev/null +++ b/Elwig/Controls/WineQualityLevelTemplateSelector.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; +using System.Windows; + +namespace Elwig.Controls { + public class WineQualityLevelTemplateSelector : DataTemplateSelector { + public override DataTemplate SelectTemplate(object item, DependencyObject container) { + ContentPresenter presenter = (ContentPresenter)container; + if (presenter.TemplatedParent is ComboBox) { + return (DataTemplate)presenter.FindResource("WineQualityLevelTemplateCollapsed"); + } else { + return (DataTemplate)presenter.FindResource("WineQualityLevelTemplateExpanded"); + } + } + } +} diff --git a/Elwig/Controls/WineVarietyTemplateSelector.cs b/Elwig/Controls/WineVarietyTemplateSelector.cs new file mode 100644 index 0000000..aceb0f9 --- /dev/null +++ b/Elwig/Controls/WineVarietyTemplateSelector.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; +using System.Windows; + +namespace Elwig.Controls { + public class WineVarietyTemplateSelector : DataTemplateSelector { + public override DataTemplate SelectTemplate(object item, DependencyObject container) { + ContentPresenter presenter = (ContentPresenter)container; + if (presenter.TemplatedParent is ComboBox) { + return (DataTemplate)presenter.FindResource("WineVarietyTemplateCollapsed"); + } else { + return (DataTemplate)presenter.FindResource("WineVarietyTemplateExpanded"); + } + } + } +} diff --git a/Elwig/Windows/BaseDataWindow.xaml b/Elwig/Windows/BaseDataWindow.xaml index 2efe74c..6a80f7a 100644 --- a/Elwig/Windows/BaseDataWindow.xaml +++ b/Elwig/Windows/BaseDataWindow.xaml @@ -355,8 +355,12 @@