make sure dispose is called when template applied again
MODIFY
WalletWasabi.Fluent/Controls/TagControl.axaml.cs
WalletWasabi.Fluent/Controls/TagControl.axaml.cs
@@ -55,6 +55,7 @@ namespace WalletWasabi.Fluent.Controls
deleteButton.Click += OnDeleteTagClicked;
+ _subscription?.Dispose();
_subscription = Disposable.Create(() => deleteButton.Click -= OnDeleteTagClicked);
}

MODIFY
WalletWasabi.Fluent/Controls/TagsBox.axaml.cs
WalletWasabi.Fluent/Controls/TagsBox.axaml.cs
@@ -165,7 +165,9 @@ namespace WalletWasabi.Fluent.Controls
{
base.OnApplyTemplate(e);
+ _compositeDisposable?.Dispose();
_compositeDisposable = new CompositeDisposable();
+
_watermark = e.NameScope.Find<TextBlock>("PART_Watermark");
var presenter = e.NameScope.Find<ItemsPresenter>("PART_ItemsPresenter");
presenter.ApplyTemplate();

make sure dispose is called when template applied again