54 lines
1.6 KiB
C#
54 lines
1.6 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));
|
|
_viewManager.Register("MitarbeiterHinzufuegen", () => new MitarbeiterHinzufuegenView());
|
|
|
|
// 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");
|
|
}
|
|
|
|
private void MitarbeiterHinzufuegen_Click(object? sender, RoutedEventArgs e)
|
|
{
|
|
_viewManager.Show("MitarbeiterHinzufuegen");
|
|
}
|
|
} |