diff --git a/src/components/BootstrapBlazor.DockView/BootstrapBlazor.DockView.csproj b/src/components/BootstrapBlazor.DockView/BootstrapBlazor.DockView.csproj index b3fe2dd0..64ec313b 100644 --- a/src/components/BootstrapBlazor.DockView/BootstrapBlazor.DockView.csproj +++ b/src/components/BootstrapBlazor.DockView/BootstrapBlazor.DockView.csproj @@ -1,7 +1,7 @@  - 10.0.8-beta05 + 10.0.8-beta06 diff --git a/src/components/BootstrapBlazor.DockView/Components/DockViewComponent.razor.cs b/src/components/BootstrapBlazor.DockView/Components/DockViewComponent.razor.cs index 663459a8..de5a128e 100644 --- a/src/components/BootstrapBlazor.DockView/Components/DockViewComponent.razor.cs +++ b/src/components/BootstrapBlazor.DockView/Components/DockViewComponent.razor.cs @@ -200,6 +200,11 @@ protected override void Dispose(bool disposing) { base.Dispose(disposing); + if (OnClickTitleBarCallback != null) + { + OnClickTitleBarCallback = null; + } + DockView.RemoveComponentState(Key); } } diff --git a/src/components/BootstrapBlazor.DockView/Components/DockViewTitleBar.razor.cs b/src/components/BootstrapBlazor.DockView/Components/DockViewTitleBar.razor.cs index a0f1c9a0..a774e7f8 100644 --- a/src/components/BootstrapBlazor.DockView/Components/DockViewTitleBar.razor.cs +++ b/src/components/BootstrapBlazor.DockView/Components/DockViewTitleBar.razor.cs @@ -10,7 +10,7 @@ namespace BootstrapBlazor.Components; /// DockView 标题栏组件 /// DockView title bar component /// -public partial class DockViewTitleBar +public partial class DockViewTitleBar : IAsyncDisposable { /// /// 获得/设置 标题前置图标点击回调方法,默认为 null @@ -40,4 +40,29 @@ private async Task OnClickBar() await OnClickBarCallback(); } } + + /// + /// + /// + /// + /// + protected virtual ValueTask DisposeAsync(bool disposing) + { + if (disposing) + { + OnClickBarCallback = null; + } + + return ValueTask.CompletedTask; + } + + /// + /// + /// + /// + public async ValueTask DisposeAsync() + { + await DisposeAsync(true); + GC.SuppressFinalize(this); + } } diff --git a/src/components/BootstrapBlazor.DockView/Components/DockViewV2.razor.cs b/src/components/BootstrapBlazor.DockView/Components/DockViewV2.razor.cs index 84a0bcce..b00fb337 100644 --- a/src/components/BootstrapBlazor.DockView/Components/DockViewV2.razor.cs +++ b/src/components/BootstrapBlazor.DockView/Components/DockViewV2.razor.cs @@ -12,7 +12,7 @@ namespace BootstrapBlazor.Components; /// DockViewV2 组件 /// DockViewV2 component /// -public partial class DockViewV2 : IDisposable +public partial class DockViewV2 { /// /// 获得/设置 DockView 名称,默认为 null,用于本地存储标识 @@ -413,20 +413,18 @@ internal void UpdateComponentState(string? key, bool visible, bool? isLock) return state; } - private void Dispose(bool disposing) + /// + /// + /// + /// + /// + protected override ValueTask DisposeAsync(bool disposing) { if (disposing) { ThemeProviderService.ThemeChangedAsync -= OnThemeChangedAsync; } - } - /// - /// - /// - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); + return base.DisposeAsync(disposing); } }