diff --git a/TournamentOrganizer/ViewModels/TeamsViewModel.cs b/TournamentOrganizer/ViewModels/TeamsViewModel.cs index 5b68d58..7420e6f 100644 --- a/TournamentOrganizer/ViewModels/TeamsViewModel.cs +++ b/TournamentOrganizer/ViewModels/TeamsViewModel.cs @@ -77,6 +77,22 @@ public partial class TeamsViewModel : ViewModelBase private readonly ObservableCollection _filteredTournaments = []; public ObservableCollection FilteredTournaments => _filteredTournaments; + public bool IsTournamentFilterEnabled => !string.IsNullOrWhiteSpace(SelectedEventFilter); + + partial void OnSelectedEventFilterChanged(string? value) + { + if (value == null) + { + SelectedTournamentFilter = null; + } + OnPropertyChanged(nameof(IsTournamentFilterEnabled)); + UpdateFilteredTournaments(); + if (!string.IsNullOrWhiteSpace(value)) + { + _ = LoadTeams(); + } + } + partial void OnEventFilterSearchChanged(string value) => UpdateFilteredEvents(); partial void OnTournamentFilterSearchChanged(string value) => UpdateFilteredTournaments(); @@ -93,7 +109,14 @@ public partial class TeamsViewModel : ViewModelBase private void UpdateFilteredTournaments() { _filteredTournaments.Clear(); - foreach (var t in AvailableTournaments.Where(t => string.IsNullOrWhiteSpace(TournamentFilterSearch) || t.ToLower().Contains(TournamentFilterSearch.ToLower()))) + if (string.IsNullOrWhiteSpace(SelectedEventFilter)) + { + return; + } + + foreach (var t in AvailableTournaments + .Where(t => t.EndsWith($" @ {SelectedEventFilter}")) + .Where(t => string.IsNullOrWhiteSpace(TournamentFilterSearch) || t.ToLower().Contains(TournamentFilterSearch.ToLower()))) { _filteredTournaments.Add(t); } diff --git a/TournamentOrganizer/Views/TeamsView.axaml b/TournamentOrganizer/Views/TeamsView.axaml index 41b0577..242f0ae 100644 --- a/TournamentOrganizer/Views/TeamsView.axaml +++ b/TournamentOrganizer/Views/TeamsView.axaml @@ -83,7 +83,7 @@ + IsChecked="{Binding IsTournamentDropdownOpen}" IsEnabled="{Binding IsTournamentFilterEnabled}"> @@ -94,7 +94,7 @@ - +