using System.Threading.Tasks; using OwlCore.Extensions; using StrixMusic.Sdk.ViewModels; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; namespace StrixMusic.Sdk.WinUI.Controls.Views.Secondary { /// /// A Templated for showing an as a page. /// public sealed partial class PlaylistView : Control { /// /// Initializes a new instance of the class. /// /// The Playlist in view. public PlaylistView(PlaylistViewModel playlistViewModel) { this.DefaultStyleKey = typeof(PlaylistView); DataContext = playlistViewModel; } /// /// Backing dependency property for . /// public static readonly DependencyProperty PlaylistProperty = DependencyProperty.Register(nameof(Playlist), typeof(PlaylistViewModel), typeof(PlaylistView), new PropertyMetadata(null, (s, e) => ((PlaylistView)s).OnPlaylistChanged())); /// /// The playlist to display. /// public PlaylistViewModel? Playlist { get { return (PlaylistViewModel)GetValue(PlaylistProperty); } set { SetValue(PlaylistProperty, value); } } private void OnPlaylistChanged() { if (Playlist is null) return; if (!Playlist.InitTrackCollectionAsyncCommand.IsRunning) _ = Playlist.InitTrackCollectionAsyncCommand.ExecuteAsync(null); } } }