using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; namespace AntDesign { public class DrawerRef : DrawerRef { public new Func OnClose { get; set; } internal DrawerRef(DrawerConfig config, DrawerService service) : base(config, service) { } /// /// 关闭抽屉 /// /// public async Task CloseAsync(TResult result) { await _service.CloseAsync(this); await OnClose.Invoke(result); } } public class DrawerRef { public DrawerConfig Config { get; set; } public Drawer Drawer { get; set; } protected DrawerService _service; public Func OnOpen { get; set; } public Func OnClose { get; set; } internal DrawerRef(DrawerConfig config) { Config = config; } internal DrawerRef(DrawerConfig config, DrawerService service) { Config = config; _service = service; } /// /// 打开抽屉 /// /// public async Task OpenAsync() { await _service.OpenAsync(this); if (OnOpen != null) await OnOpen.Invoke(); } /// /// 关闭抽屉无返回值 /// /// public async Task CloseAsync() { await _service.CloseAsync(this); if (OnClose != null) await OnClose.Invoke(); } internal async Task HandleOnCancel() { bool isClose = true; if (Config.OnCancel != null) { isClose = Config.OnCancel.Invoke() ?? true; } if (isClose == true) await _service.CloseAsync(this); } } }