From 665a9750e47d6b8a9e32c63708ede7687dc10afc Mon Sep 17 00:00:00 2001 From: Natlinux81 <97396587+Natlinux81@users.noreply.github.com> Date: Sun, 21 Aug 2022 00:14:04 +0200 Subject: [PATCH] overview details not refresh --- .../Stores/SelectedTournamentsStore.cs | 6 ++++ .../ViewModels/OverviewListingViewModel.cs | 30 +++++++++++++------ .../Views/Components/OverViewListing.xaml | 4 ++- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/Apollon.WPF/Stores/SelectedTournamentsStore.cs b/Apollon.WPF/Stores/SelectedTournamentsStore.cs index a3e8a30..da3df9c 100644 --- a/Apollon.WPF/Stores/SelectedTournamentsStore.cs +++ b/Apollon.WPF/Stores/SelectedTournamentsStore.cs @@ -33,8 +33,14 @@ namespace Apollon.WPF.Stores _tournamentStore = tournamentstore; _tournamentStore.TournamentUpdated += TournamentStore_TournamentUpdated; + _tournamentStore.TournamentAdded += TournamentStore_TournamentAdded; } + private void TournamentStore_TournamentAdded(Tournament tournament) + { + SelectedTournament = tournament; + } + private void TournamentStore_TournamentUpdated(Tournament tournament) { if(tournament.Id == SelectedTournament?.Id) diff --git a/Apollon.WPF/ViewModels/OverviewListingViewModel.cs b/Apollon.WPF/ViewModels/OverviewListingViewModel.cs index 02736d9..34daa66 100644 --- a/Apollon.WPF/ViewModels/OverviewListingViewModel.cs +++ b/Apollon.WPF/ViewModels/OverviewListingViewModel.cs @@ -19,21 +19,17 @@ namespace Apollon.WPF.ViewModels private readonly TournamentsStore _tournamentStore; public IEnumerable OverviewListingItemViewModels => _overviewListingItemViewModels; - - private OverviewListingItemViewModel _selectedOverviewListingItemViewModel; - + public OverviewListingItemViewModel SelectedOverviewListingItemViewModel { get { - return _selectedOverviewListingItemViewModel; + return _overviewListingItemViewModels. + FirstOrDefault(y => y.Tournament?.Id == _selectedTournamentStore.SelectedTournament?.Id); } set - { - _selectedOverviewListingItemViewModel = value; - OnPropertyChanged(nameof(SelectedOverviewListingItemViewModel)); - - _selectedTournamentStore.SelectedTournament = _selectedOverviewListingItemViewModel.Tournament; + { + _selectedTournamentStore.SelectedTournament = value?.Tournament; } } @@ -48,10 +44,14 @@ namespace Apollon.WPF.ViewModels LoadTournamentsCommand = new LoadTournamentsCommand(tournamentStore); + _selectedTournamentStore.SelectedTournamentChanged += SelectedTournamentStore_SelectedTournamentChanged; + _tournamentStore.TournamentLoaded += TournamentStore_TournamentLoaded; _tournamentStore.TournamentAdded += TournamentStore_TournamentAdded; _tournamentStore.TournamentUpdated += TournamentStore_TournamentUpdated; _tournamentStore.TournamentDeleted += TournamentStore_TournamentDeleted; + + _overviewListingItemViewModels.CollectionChanged += OverviewListingItemViewModels_CollectionChanged; } public static OverviewListingViewModel LoadViewModel(SelectedTournamentsStore selectedTournamentStore, ModalNavigationStore modalNavigationStore, TournamentsStore tournamentStore) @@ -65,6 +65,8 @@ namespace Apollon.WPF.ViewModels protected override void Dispose() { + _selectedTournamentStore.SelectedTournamentChanged += SelectedTournamentStore_SelectedTournamentChanged; + _tournamentStore.TournamentLoaded -= TournamentStore_TournamentLoaded; _tournamentStore.TournamentAdded -= TournamentStore_TournamentAdded; _tournamentStore.TournamentUpdated -= TournamentStore_TournamentUpdated; @@ -73,6 +75,11 @@ namespace Apollon.WPF.ViewModels base.Dispose(); } + private void SelectedTournamentStore_SelectedTournamentChanged() + { + OnPropertyChanged(nameof(SelectedOverviewListingItemViewModel)); + } + private void TournamentStore_TournamentLoaded() { _overviewListingItemViewModels.Clear(); @@ -109,6 +116,11 @@ namespace Apollon.WPF.ViewModels } } + private void OverviewListingItemViewModels_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) + { + OnPropertyChanged(nameof(SelectedOverviewListingItemViewModel)); + } + private void AddTournament(Tournament tournament) { OverviewListingItemViewModel itemViewModel = diff --git a/Apollon.WPF/Views/Components/OverViewListing.xaml b/Apollon.WPF/Views/Components/OverViewListing.xaml index 14cd2b3..c83eb4f 100644 --- a/Apollon.WPF/Views/Components/OverViewListing.xaml +++ b/Apollon.WPF/Views/Components/OverViewListing.xaml @@ -19,7 +19,9 @@ BorderBrush="Transparent" Padding="5" ItemsSource="{Binding OverviewListingItemViewModels}" - SelectedItem="{Binding SelectedOverviewListingItemViewModel}" > + SelectedItem="{Binding SelectedOverviewListingItemViewModel}" + ScrollViewer.HorizontalScrollBarVisibility="Disabled" + SelectionMode="Single">