using StrixMusic.Sdk.ViewModels;
using StrixMusic.Sdk.WinUI.Controls.Items.Abstract;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace StrixMusic.Sdk.WinUI.Controls.Items
{
///
/// A Templated for displaying an in a list.
///
public partial class AlbumItem : ItemControl
{
///
/// Initializes a new instance of the class.
///
public AlbumItem()
{
this.DefaultStyleKey = typeof(AlbumItem);
AttachEvents();
}
private void AttachEvents()
{
Loaded += AlbumItem_Loaded;
Unloaded += AlbumItem_Unloaded;
}
private void DetachEvents()
{
Unloaded -= AlbumItem_Unloaded;
}
///
/// ViewModel holding the data for
///
public AlbumViewModel Album
{
get { return (AlbumViewModel)GetValue(AlbumProperty); }
set { SetValue(AlbumProperty, value); }
}
///
/// Dependency property for .
///
// Using a DependencyProperty as the backing store for ViewModel. This enables animation, styling, binding, etc...
public static readonly DependencyProperty AlbumProperty =
DependencyProperty.Register(nameof(Album), typeof(AlbumViewModel), typeof(AlbumItem), new PropertyMetadata(0));
private void AlbumItem_Unloaded(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
DetachEvents();
}
private void AlbumItem_Loaded(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
Loaded -= AlbumItem_Loaded;
}
}
}