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);
}
}
}