ChronoFlow/ChronoFlow.View/MainWindow.axaml.cs

48 lines
1.4 KiB
C#

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");
}
}