// Copyright (c) Arlo Godfrey. All Rights Reserved. // Licensed under the GNU Lesser General Public License, Version 3.0 with additional terms. // See the LICENSE, LICENSE.LESSER and LICENSE.ADDITIONAL files in the project root for more information. using System.Collections.ObjectModel; using System.Threading; using System.Threading.Tasks; using CommunityToolkit.Mvvm.Input; using StrixMusic.Sdk.AppModels; namespace StrixMusic.Sdk.ViewModels { /// /// The children-specific ViewModel properties for . /// This is needed so because multiple view models implement , /// and the UI needs to create controls that handle only the ViewModels properties for an . /// public interface IPlayableCollectionGroupChildrenViewModel : ISdkViewModel, IPlayableCollectionGroupChildren { /// /// The nested items in this collection. /// public ObservableCollection Children { get; } /// /// Populates the next set of children items into the collection. /// /// The number of items to load. /// A cancellation token that may be used to cancel the ongoing task. /// A representing the asynchronous operation. public Task PopulateMoreChildrenAsync(int limit, CancellationToken cancellationToken = default); /// /// /// public IAsyncRelayCommand PopulateMoreChildrenCommand { get; } } }