using System; using System.Collections.Generic; using Avalonia.Controls; using Microsoft.Data.Sqlite; namespace ChronoFlow.View { /// /// Verwaltet alle Views der Anwendung und wechselt sie bei Bedarf. /// public class ViewManager { private readonly ContentControl _targetControl; private readonly Dictionary> _registieredViews = new(); public ViewManager(ContentControl targetControl) { _targetControl = targetControl; } /// /// Registriert eine View mit einem Namen /// public void Show(string name, Func viewFactory) { _registieredViews[name] = viewFactory; } /// /// Zeigt die View mit dem gegebenen Namen an. /// public void Show(string name) { if(_registieredViews.TryGetValue(name, out var factory)) _targetControl.Content = factory(); else { throw new InvalidOperationException($"View {name} is not registered"); } } public void Register(string name, Func viewFactory) { _registieredViews[name] = viewFactory; } } }