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,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)

View File

@@ -19,21 +19,17 @@ namespace Apollon.WPF.ViewModels
private readonly TournamentsStore _tournamentStore;
public IEnumerable<OverviewListingItemViewModel> 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 =

View File

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