using System.Threading.Tasks; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; namespace TournamentOrganizer.ViewModels; public partial class MainViewModel : ViewModelBase { [ObservableProperty] private ViewModelBase _currentView; [ObservableProperty] private string _title = "Tournament Organizer"; public MainViewModel() { CurrentView = new HomeViewModel(); } [RelayCommand] private void NavigateToHome() { CurrentView = new HomeViewModel(); Title = "Tournament Organizer"; } [RelayCommand] private async Task NavigateToTeams() { var teamsVm = new TeamsViewModel(); CurrentView = teamsVm; Title = "Teams Management"; await teamsVm.LoadTeams(); } [RelayCommand] private async Task NavigateToGames() { var gamesVm = new GamesViewModel(); CurrentView = gamesVm; Title = "Games Management"; await gamesVm.LoadGames(); } [RelayCommand] private async Task NavigateToEvents() { var eventsVm = new EventsViewModel(); CurrentView = eventsVm; Title = "Events Management"; await eventsVm.LoadEvents(); } [RelayCommand] private async Task NavigateToTournaments() { var tournamentsVm = new TournamentsViewModel(); CurrentView = tournamentsVm; Title = "Tournament Management"; await tournamentsVm.LoadTournaments(); } } public partial class HomeViewModel : ViewModelBase { [ObservableProperty] private string _welcomeMessage = "Welcome to Tournament Organizer!"; }