using System; using Avalonia; using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Markup.Xaml; using Avalonia.VisualTree; using Project_Periodensystem.Model; using Project_Periodensystem.Controller; namespace Project_Periodensystem.View { /// /// Code-Behind für die About-Seite - SAUBERES MVC /// public partial class AboutPage : UserControl { private PeriodensystemController? _controller; /// /// Konstruktor /// public AboutPage() { InitializeComponent(); } /// /// Controller setzen (Dependency Injection für MVC) /// public void SetController(PeriodensystemController controller) { _controller = controller ?? throw new ArgumentNullException(nameof(controller)); Logger.Log("AboutPage: Controller gesetzt (MVC-Pattern)"); } private void InitializeComponent() { AvaloniaXamlLoader.Load(this); } /// /// Zurück-Button - Navigation zur Landing Page - SAUBERES MVC /// private void BackButton_Click(object? sender, RoutedEventArgs e) { try { if (_controller != null) { // Controller übernimmt Navigation _controller.HandleNavigateToLanding(); } else { Logger.LogError("Controller nicht gesetzt - kann nicht navigieren"); } } catch (Exception ex) { Logger.LogException(ex, "BackButton_Click"); } } /// /// Event-Handler für Theme-Button - SAUBERES MVC /// private void ThemeButton_Click(object? sender, RoutedEventArgs e) { try { if (_controller != null) { // Controller übernimmt Theme-Logik _controller.HandleToggleTheme(); } else { Logger.LogError("Controller nicht gesetzt - kann Theme nicht wechseln"); } } catch (Exception ex) { Logger.LogException(ex, "ThemeButton_Click"); } } } }