using StrixMusic.Sdk.BaseModels;
using StrixMusic.Sdk.ViewModels;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace StrixMusic.Sdk.WinUI.TemplateSelectors
{
///
/// A for the collections in a library.
///
public sealed class CollectionSelector : DataTemplateSelector
{
///
/// The for track lists.
///
public DataTemplate? TrackListTemplate { get; set; }
///
/// The for album lists.
///
public DataTemplate? AlbumListTemplate { get; set; }
///
/// The for any .
///
public DataTemplate? PlayableCollectionGroupTemplate { get; set; }
///
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
{
switch (item)
{
case TrackViewModel _:
return TrackListTemplate!;
case AlbumViewModel _:
return AlbumListTemplate!;
default:
return PlayableCollectionGroupTemplate!;
}
}
}
}