using Avalonia.Controls; using Avalonia.Interactivity; using ChronoFlow.Model; namespace ChronoFlow.View; public partial class MainWindow : Window { private readonly ViewManager _viewManager; private readonly User _loggedInUser; public MainWindow(User user) { InitializeComponent(); _loggedInUser = user; // ✅ Workaround: Lokale Kopie für Lambda-Nutzung im Register var currentUser = _loggedInUser; _viewManager = new ViewManager(ContentArea); // ✅ Register-Aufruf mit stabiler local variable _viewManager.Register("Zeiterfassung", () => new ZeiterfassungView(currentUser)); // Begrüßungsanzeige ContentArea.Content = new TextBlock { Text = $"Willkommen bei ChronoFlow, {currentUser.Username}!", FontSize = 24, HorizontalAlignment = Avalonia.Layout.HorizontalAlignment.Center, VerticalAlignment = Avalonia.Layout.VerticalAlignment.Center }; // Fenstertitel dynamisch setzen this.Title = $"ChronoFlow - Willkommen {currentUser.Username} ({currentUser.Role})"; } private void PaneOpenClose_Click(object sender, RoutedEventArgs e) { PaneView.IsPaneOpen = !PaneView.IsPaneOpen; } private void Zeiterfassung_Click(object? sender, RoutedEventArgs e) { _viewManager.Show("Zeiterfassung"); } }