namespace Lattice.Core.DragDrop.Abstractions; /// /// Определяет контракт для объектов, которые могут быть источником данных /// в операции перетаскивания с поддержкой асинхронных операций. /// public interface IAsyncDragSource : IDragSource { /// /// Определяет, может ли объект начать операцию перетаскивания (асинхронно). /// Task<(bool CanStart, Models.DragInfo? DragInfo)> CanStartDragAsync(); /// /// Начинает операцию перетаскивания (асинхронно). /// Task StartDragAsync(Models.DragInfo dragInfo); /// /// Вызывается при завершении операции перетаскивания (асинхронно). /// Task DragCompletedAsync(Models.DragInfo dragInfo, Enums.DragDropEffects effects); /// /// Вызывается при отмене операции перетаскивания (асинхронно). /// Task DragCancelledAsync(Models.DragInfo dragInfo); }