using CommunityToolkit.Diagnostics;
using StrixMusic.Shared.ViewModels;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace StrixMusic.Shared.TemplateSelectors
{
///
/// Selects the template for a service item.
///
public class ServicesItemTemplateSelector : DataTemplateSelector
{
///
/// The template to display for an item that triggers creating a new core.
///
public DataTemplate? NewItemTemplate { get; set; }
///
/// The template to display for a loaded core.
///
public DataTemplate? CoreItemTemplate { get; set; }
///
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
{
if (!(item is LoadedServicesItemViewModel settingsVm))
return base.SelectTemplateCore(item, container);
Guard.IsNotNull(NewItemTemplate, nameof(NewItemTemplate));
Guard.IsNotNull(CoreItemTemplate, nameof(CoreItemTemplate));
return settingsVm.IsAddItem ? NewItemTemplate : CoreItemTemplate;
}
}
}