From 100b40d212329d8a3ed9c2d088671f91378e950c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tommy=20=C3=96man?= Date: Wed, 24 Aug 2022 21:55:34 +0200 Subject: [PATCH] Application anyhow ready and functioning --- .../Stores/SelectedYouTubeViewerStore.cs | 6 +++++ .../YouTubeViewersListingViewModel.cs | 26 +++++++++++++++---- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/YouTubeViewers.WPF/Stores/SelectedYouTubeViewerStore.cs b/YouTubeViewers.WPF/Stores/SelectedYouTubeViewerStore.cs index 74bde7a..b620d5b 100644 --- a/YouTubeViewers.WPF/Stores/SelectedYouTubeViewerStore.cs +++ b/YouTubeViewers.WPF/Stores/SelectedYouTubeViewerStore.cs @@ -14,9 +14,15 @@ namespace YouTubeViewers.WPF.Stores public SelectedYouTubeViewerStore(YouTubeViewersStore youTubeViewersStore) { _youTubeViewersStore = youTubeViewersStore; + _youTubeViewersStore.YouTubeViewerAdded += YouTubeViewersStore_YouTubeViewerAdded; _youTubeViewersStore.YouTubeViewerUpdated += YouTubeViewersStore_YouTubeViewerUpdated; } + private void YouTubeViewersStore_YouTubeViewerAdded(YouTubeViewer youTubeViewer) + { + SelectedYouTubeViewer=youTubeViewer; + } + private void YouTubeViewersStore_YouTubeViewerUpdated(YouTubeViewer youTubeViewer) { if (youTubeViewer.Id == SelectedYouTubeViewer?.Id) diff --git a/YouTubeViewers.WPF/ViewModels/YouTubeViewersListingViewModel.cs b/YouTubeViewers.WPF/ViewModels/YouTubeViewersListingViewModel.cs index 26a59f0..79331aa 100644 --- a/YouTubeViewers.WPF/ViewModels/YouTubeViewersListingViewModel.cs +++ b/YouTubeViewers.WPF/ViewModels/YouTubeViewersListingViewModel.cs @@ -20,16 +20,18 @@ namespace YouTubeViewers.WPF.ViewModels public IEnumerable YouTubeViewersListingItemViewModels => _youtubeViewersListingItemViewModels; - private YouTubeViewersListingItemViewModel _selectedYouTubeViewerListingItemViewModel; + //private YouTubeViewersListingItemViewModel _selectedYouTubeViewerListingItemViewModel; public YouTubeViewersListingItemViewModel SelectedYouTubeViewerListingItemViewModel { - get { return _selectedYouTubeViewerListingItemViewModel; } + get { + return _youtubeViewersListingItemViewModels + .FirstOrDefault(y => y.YouTubeViewer?.Id == _selectedYouTubeViewerStore.SelectedYouTubeViewer?.Id); + } set { - _selectedYouTubeViewerListingItemViewModel = value; - OnPropertyChanged(nameof(SelectedYouTubeViewerListingItemViewModel)); - _selectedYouTubeViewerStore.SelectedYouTubeViewer = _selectedYouTubeViewerListingItemViewModel?.YouTubeViewer; + + _selectedYouTubeViewerStore.SelectedYouTubeViewer = value?.YouTubeViewer; } } @@ -46,13 +48,25 @@ namespace YouTubeViewers.WPF.ViewModels _modalNavigationStore = modalNavigationStore; _youtubeViewersListingItemViewModels = new ObservableCollection(); + _selectedYouTubeViewerStore.SelectedYouTubeViewerChanged += _selectedYouTubeViewerStore_SelectedYouTubeViewerChanged; _youTubeViewersStore.YouTubeViewersLoaded += _youTubeViewersStore_YouTubeViewersLoaded; _youTubeViewersStore.YouTubeViewerAdded += YouTubeViewersStore_YouTubeViewerAdded; _youTubeViewersStore.YouTubeViewerUpdated += YouTubeViewersStore_YouTubeViewerUpdated; _youTubeViewersStore.YouTubeViewerDeleted += YouTubeViewersStore_YouTubeViewerDeleted; + + _youtubeViewersListingItemViewModels.CollectionChanged += _youtubeViewersListingItemViewModels_CollectionChanged; } + private void _youtubeViewersListingItemViewModels_CollectionChanged(object? sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) + { + OnPropertyChanged(nameof(SelectedYouTubeViewerListingItemViewModel)); + } + + private void _selectedYouTubeViewerStore_SelectedYouTubeViewerChanged() + { + OnPropertyChanged(nameof(SelectedYouTubeViewerListingItemViewModel)); + } private void _youTubeViewersStore_YouTubeViewersLoaded() { @@ -78,6 +92,8 @@ namespace YouTubeViewers.WPF.ViewModels protected override void Dispose() { + _selectedYouTubeViewerStore.SelectedYouTubeViewerChanged -= _selectedYouTubeViewerStore_SelectedYouTubeViewerChanged; + _youTubeViewersStore.YouTubeViewersLoaded -= _youTubeViewersStore_YouTubeViewersLoaded; _youTubeViewersStore.YouTubeViewerAdded -= YouTubeViewersStore_YouTubeViewerAdded; _youTubeViewersStore.YouTubeViewerUpdated -= YouTubeViewersStore_YouTubeViewerUpdated;