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.
///
[TemplatePart(Name = nameof(_rootGrid), Type = typeof(Grid))]
public partial class ArtistItem : ItemControl
{
private Grid? _rootGrid;
///
/// Initializes a new instance of the class.
///
public ArtistItem()
{
this.DefaultStyleKey = typeof(ArtistItem);
}
///
protected override void OnApplyTemplate()
{
base.OnApplyTemplate();
// Find and set RootGrid
_rootGrid = GetTemplateChild(nameof(_rootGrid)) as Grid;
if (_rootGrid != null)
{
_rootGrid.PointerEntered += RootGrid_PointerEntered;
_rootGrid.PointerExited += RootGrid_PointerExited;
}
}
///
/// ViewModel holding the data for
///
public ArtistViewModel Artist
{
get { return (ArtistViewModel)GetValue(ArtistProperty); }
set { SetValue(ArtistProperty, value); }
}
///
/// Dependency property for .
///
// Using a DependencyProperty as the backing store for ViewModel. This enables animation, styling, binding, etc...
public static readonly DependencyProperty ArtistProperty =
DependencyProperty.Register(nameof(Artist), typeof(ArtistViewModel), typeof(ArtistItem), new PropertyMetadata(0));
private void RootGrid_PointerExited(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
{
VisualStateManager.GoToState(this, "Normal", true);
}
private void RootGrid_PointerEntered(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
{
VisualStateManager.GoToState(this, "PointerOver", true);
}
}
}