overview details not refresh

This commit is contained in:
Natlinux81
2022-08-21 00:14:04 +02:00
parent 6b0057b68a
commit 665a9750e4
3 changed files with 30 additions and 10 deletions

View File

@@ -33,6 +33,12 @@ namespace Apollon.WPF.Stores
_tournamentStore = tournamentstore; _tournamentStore = tournamentstore;
_tournamentStore.TournamentUpdated += TournamentStore_TournamentUpdated; _tournamentStore.TournamentUpdated += TournamentStore_TournamentUpdated;
_tournamentStore.TournamentAdded += TournamentStore_TournamentAdded;
}
private void TournamentStore_TournamentAdded(Tournament tournament)
{
SelectedTournament = tournament;
} }
private void TournamentStore_TournamentUpdated(Tournament tournament) private void TournamentStore_TournamentUpdated(Tournament tournament)

View File

@@ -20,20 +20,16 @@ namespace Apollon.WPF.ViewModels
public IEnumerable<OverviewListingItemViewModel> OverviewListingItemViewModels => _overviewListingItemViewModels; public IEnumerable<OverviewListingItemViewModel> OverviewListingItemViewModels => _overviewListingItemViewModels;
private OverviewListingItemViewModel _selectedOverviewListingItemViewModel;
public OverviewListingItemViewModel SelectedOverviewListingItemViewModel public OverviewListingItemViewModel SelectedOverviewListingItemViewModel
{ {
get get
{ {
return _selectedOverviewListingItemViewModel; return _overviewListingItemViewModels.
FirstOrDefault(y => y.Tournament?.Id == _selectedTournamentStore.SelectedTournament?.Id);
} }
set set
{ {
_selectedOverviewListingItemViewModel = value; _selectedTournamentStore.SelectedTournament = value?.Tournament;
OnPropertyChanged(nameof(SelectedOverviewListingItemViewModel));
_selectedTournamentStore.SelectedTournament = _selectedOverviewListingItemViewModel.Tournament;
} }
} }
@@ -48,10 +44,14 @@ namespace Apollon.WPF.ViewModels
LoadTournamentsCommand = new LoadTournamentsCommand(tournamentStore); LoadTournamentsCommand = new LoadTournamentsCommand(tournamentStore);
_selectedTournamentStore.SelectedTournamentChanged += SelectedTournamentStore_SelectedTournamentChanged;
_tournamentStore.TournamentLoaded += TournamentStore_TournamentLoaded; _tournamentStore.TournamentLoaded += TournamentStore_TournamentLoaded;
_tournamentStore.TournamentAdded += TournamentStore_TournamentAdded; _tournamentStore.TournamentAdded += TournamentStore_TournamentAdded;
_tournamentStore.TournamentUpdated += TournamentStore_TournamentUpdated; _tournamentStore.TournamentUpdated += TournamentStore_TournamentUpdated;
_tournamentStore.TournamentDeleted += TournamentStore_TournamentDeleted; _tournamentStore.TournamentDeleted += TournamentStore_TournamentDeleted;
_overviewListingItemViewModels.CollectionChanged += OverviewListingItemViewModels_CollectionChanged;
} }
public static OverviewListingViewModel LoadViewModel(SelectedTournamentsStore selectedTournamentStore, ModalNavigationStore modalNavigationStore, TournamentsStore tournamentStore) public static OverviewListingViewModel LoadViewModel(SelectedTournamentsStore selectedTournamentStore, ModalNavigationStore modalNavigationStore, TournamentsStore tournamentStore)
@@ -65,6 +65,8 @@ namespace Apollon.WPF.ViewModels
protected override void Dispose() protected override void Dispose()
{ {
_selectedTournamentStore.SelectedTournamentChanged += SelectedTournamentStore_SelectedTournamentChanged;
_tournamentStore.TournamentLoaded -= TournamentStore_TournamentLoaded; _tournamentStore.TournamentLoaded -= TournamentStore_TournamentLoaded;
_tournamentStore.TournamentAdded -= TournamentStore_TournamentAdded; _tournamentStore.TournamentAdded -= TournamentStore_TournamentAdded;
_tournamentStore.TournamentUpdated -= TournamentStore_TournamentUpdated; _tournamentStore.TournamentUpdated -= TournamentStore_TournamentUpdated;
@@ -73,6 +75,11 @@ namespace Apollon.WPF.ViewModels
base.Dispose(); base.Dispose();
} }
private void SelectedTournamentStore_SelectedTournamentChanged()
{
OnPropertyChanged(nameof(SelectedOverviewListingItemViewModel));
}
private void TournamentStore_TournamentLoaded() private void TournamentStore_TournamentLoaded()
{ {
_overviewListingItemViewModels.Clear(); _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) private void AddTournament(Tournament tournament)
{ {
OverviewListingItemViewModel itemViewModel = OverviewListingItemViewModel itemViewModel =

View File

@@ -19,7 +19,9 @@
BorderBrush="Transparent" BorderBrush="Transparent"
Padding="5" Padding="5"
ItemsSource="{Binding OverviewListingItemViewModels}" ItemsSource="{Binding OverviewListingItemViewModels}"
SelectedItem="{Binding SelectedOverviewListingItemViewModel}" > SelectedItem="{Binding SelectedOverviewListingItemViewModel}"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
SelectionMode="Single">
<ListView.ItemContainerStyle> <ListView.ItemContainerStyle>
<Style TargetType="ListViewItem"> <Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/> <Setter Property="HorizontalContentAlignment" Value="Stretch"/>