From 4eea21c4f5da7e7a18a38ab26b35022c44b3eb04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20Kaan=20K=C3=B6se?= Date: Mon, 27 Oct 2025 12:53:15 +0100 Subject: [PATCH] Better prop change cleanup. --- Wino.Mail.WinUI/Controls/ListView/WinoListView.cs | 12 +++--------- .../ListView/WinoMailItemViewModelListViewItem.cs | 1 + .../WinoThreadMailItemViewModelListViewItem.cs | 1 + 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/Wino.Mail.WinUI/Controls/ListView/WinoListView.cs b/Wino.Mail.WinUI/Controls/ListView/WinoListView.cs index 175eb59d..d82a6150 100644 --- a/Wino.Mail.WinUI/Controls/ListView/WinoListView.cs +++ b/Wino.Mail.WinUI/Controls/ListView/WinoListView.cs @@ -1,5 +1,4 @@ -using System.Diagnostics; -using Microsoft.UI.Xaml; +using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Wino.Mail.ViewModels.Data; @@ -28,15 +27,10 @@ public partial class WinoListView : Microsoft.UI.Xaml.Controls.ListView protected override void ClearContainerForItemOverride(DependencyObject element, object item) { - if (item is IMailListItem mailListItem) - { - if (element is WinoThreadMailItemViewModelListViewItem threadMailItemViewModelListViewItem) threadMailItemViewModelListViewItem.Cleanup(); - if (element is WinoMailItemViewModelListViewItem winoMailItemViewModelListViewItem) winoMailItemViewModelListViewItem.Cleanup(); - } + if (element is WinoThreadMailItemViewModelListViewItem threadMailItemViewModelListViewItem) threadMailItemViewModelListViewItem.Cleanup(); + if (element is WinoMailItemViewModelListViewItem winoMailItemViewModelListViewItem) winoMailItemViewModelListViewItem.Cleanup(); base.ClearContainerForItemOverride(element, item); - - Debug.WriteLine($"Cleaned container"); } public bool SelectMailItemContainer(MailItemViewModel mailItemViewModel) diff --git a/Wino.Mail.WinUI/Controls/ListView/WinoMailItemViewModelListViewItem.cs b/Wino.Mail.WinUI/Controls/ListView/WinoMailItemViewModelListViewItem.cs index 6e95dd4b..8227c63f 100644 --- a/Wino.Mail.WinUI/Controls/ListView/WinoMailItemViewModelListViewItem.cs +++ b/Wino.Mail.WinUI/Controls/ListView/WinoMailItemViewModelListViewItem.cs @@ -49,6 +49,7 @@ public partial class WinoMailItemViewModelListViewItem : ListViewItem private void RegisterSelectionCallback(IMailListItem mailItem) { + mailItem.PropertyChanged -= MailPropChanged; mailItem.PropertyChanged += MailPropChanged; } diff --git a/Wino.Mail.WinUI/Controls/ListView/WinoThreadMailItemViewModelListViewItem.cs b/Wino.Mail.WinUI/Controls/ListView/WinoThreadMailItemViewModelListViewItem.cs index d27a1532..b5c488c7 100644 --- a/Wino.Mail.WinUI/Controls/ListView/WinoThreadMailItemViewModelListViewItem.cs +++ b/Wino.Mail.WinUI/Controls/ListView/WinoThreadMailItemViewModelListViewItem.cs @@ -108,6 +108,7 @@ public partial class WinoThreadMailItemViewModelListViewItem : ListViewItem private void RegisterSelectionCallback(ThreadMailItemViewModel mailItem) { + mailItem.PropertyChanged -= MailPropChanged; mailItem.PropertyChanged += MailPropChanged; }