Better prop change cleanup.

This commit is contained in:
Burak Kaan Köse
2025-10-27 12:53:15 +01:00
parent 7816400c01
commit 4eea21c4f5
3 changed files with 5 additions and 9 deletions
@@ -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)
@@ -49,6 +49,7 @@ public partial class WinoMailItemViewModelListViewItem : ListViewItem
private void RegisterSelectionCallback(IMailListItem mailItem)
{
mailItem.PropertyChanged -= MailPropChanged;
mailItem.PropertyChanged += MailPropChanged;
}
@@ -108,6 +108,7 @@ public partial class WinoThreadMailItemViewModelListViewItem : ListViewItem
private void RegisterSelectionCallback(ThreadMailItemViewModel mailItem)
{
mailItem.PropertyChanged -= MailPropChanged;
mailItem.PropertyChanged += MailPropChanged;
}