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