Added application session services, along with initial restore and tracker implementations.

This commit is contained in:
2026-08-06 02:11:47 -04:00
parent 75f820ed7b
commit c262ee4caa
13 changed files with 245 additions and 5 deletions

View File

@@ -17,6 +17,20 @@ public sealed partial class PlaylistsView : UserControl
_viewModel = (PlaylistsViewModel)DataContext;
_viewModel.PropertyChanging += OnViewModelPropertyChanging;
_viewModel.PropertyChanged += OnViewModelPropertyChanged;
PlaylistsListView.ContainerContentChanging += OnContainerContentChanging;
}
private void OnContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args)
{
if (args.InRecycleQueue || args.ItemContainer is not ListViewItem listViewItem)
return;
PlaylistItemStyle style = ReferenceEquals(args.Item, _viewModel.ActivePlaylist)
? PlaylistItemStyle.Selected
: PlaylistItemStyle.Normal;
UpdateListViewItemStyle(listViewItem, style);
}
private void OnViewModelPropertyChanging(object? sender, PropertyChangingEventArgs e)
@@ -41,11 +55,14 @@ public sealed partial class PlaylistsView : UserControl
private void UpdateListViewItemStyle(PlaylistItemStyle style)
{
ListViewItem listViewItem = (ListViewItem)PlaylistsListView.ContainerFromItem(_viewModel.ActivePlaylist);
if (listViewItem is null)
if (PlaylistsListView.ContainerFromItem(_viewModel.ActivePlaylist) is not ListViewItem listViewItem)
return;
UpdateListViewItemStyle(listViewItem, style);
}
private void UpdateListViewItemStyle(ListViewItem listViewItem, PlaylistItemStyle style)
{
FrameworkElement? frameworkElement = TryGetFrameworkElement(listViewItem, "PlaylistListViewItem");
if (frameworkElement == null)