using OwlCore.Extensions; using StrixMusic.Sdk.ViewModels; using StrixMusic.Shells.Groove.ViewModels.Pages; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; namespace StrixMusic.Shells.Groove.Controls.Pages { /// /// A to display an . /// public partial class GroovePlaylistsPage : Control { /// /// Initializes a new instance of the class. /// public GroovePlaylistsPage() { DefaultStyleKey = typeof(GroovePlaylistsPage); DataContext = new GroovePlaylistsPageViewModel(); } /// /// The for the template. /// public GroovePlaylistsPageViewModel ViewModel => (GroovePlaylistsPageViewModel)DataContext; /// /// The playlist collection being displayed. /// public IPlaylistCollectionViewModel? PlaylistCollection { get { return (IPlaylistCollectionViewModel)GetValue(PlaylistCollectionProperty); } set { SetValue(PlaylistCollectionProperty, value); } } /// /// Backing dependency property for . /// public static readonly DependencyProperty PlaylistCollectionProperty = DependencyProperty.Register(nameof(PlaylistCollection), typeof(IPlaylistCollectionViewModel), typeof(GroovePlaylistsPage), new PropertyMetadata(null, (d,e) => d.Cast().OnPlaylistCollectionChanged())); private void OnPlaylistCollectionChanged() { ViewModel.PlaylistCollection = PlaylistCollection; } } }