88 lines
2.5 KiB
C#
88 lines
2.5 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// Code-Behind für die About-Seite - SAUBERES MVC
|
|
/// </summary>
|
|
public partial class AboutPage : UserControl
|
|
{
|
|
private PeriodensystemController? _controller;
|
|
|
|
/// <summary>
|
|
/// Konstruktor
|
|
/// </summary>
|
|
public AboutPage()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Controller setzen (Dependency Injection für MVC)
|
|
/// </summary>
|
|
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);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Zurück-Button - Navigation zur Landing Page - SAUBERES MVC
|
|
/// </summary>
|
|
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");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Event-Handler für Theme-Button - SAUBERES MVC
|
|
/// </summary>
|
|
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");
|
|
}
|
|
}
|
|
}
|
|
}
|