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 Microsoft.UI.Xaml.Controls;
using Wino.Mail.ViewModels.Data; using Wino.Mail.ViewModels.Data;
@@ -27,16 +26,11 @@ public partial class WinoListView : Microsoft.UI.Xaml.Controls.ListView
} }
protected override void ClearContainerForItemOverride(DependencyObject element, object item) protected override void ClearContainerForItemOverride(DependencyObject element, object item)
{
if (item is IMailListItem mailListItem)
{ {
if (element is WinoThreadMailItemViewModelListViewItem threadMailItemViewModelListViewItem) threadMailItemViewModelListViewItem.Cleanup(); if (element is WinoThreadMailItemViewModelListViewItem threadMailItemViewModelListViewItem) threadMailItemViewModelListViewItem.Cleanup();
if (element is WinoMailItemViewModelListViewItem winoMailItemViewModelListViewItem) winoMailItemViewModelListViewItem.Cleanup(); if (element is WinoMailItemViewModelListViewItem winoMailItemViewModelListViewItem) winoMailItemViewModelListViewItem.Cleanup();
}
base.ClearContainerForItemOverride(element, item); base.ClearContainerForItemOverride(element, item);
Debug.WriteLine($"Cleaned container");
} }
public bool SelectMailItemContainer(MailItemViewModel mailItemViewModel) public bool SelectMailItemContainer(MailItemViewModel mailItemViewModel)
@@ -49,6 +49,7 @@ public partial class WinoMailItemViewModelListViewItem : ListViewItem
private void RegisterSelectionCallback(IMailListItem mailItem) private void RegisterSelectionCallback(IMailListItem mailItem)
{ {
mailItem.PropertyChanged -= MailPropChanged;
mailItem.PropertyChanged += MailPropChanged; mailItem.PropertyChanged += MailPropChanged;
} }
@@ -108,6 +108,7 @@ public partial class WinoThreadMailItemViewModelListViewItem : ListViewItem
private void RegisterSelectionCallback(ThreadMailItemViewModel mailItem) private void RegisterSelectionCallback(ThreadMailItemViewModel mailItem)
{ {
mailItem.PropertyChanged -= MailPropChanged;
mailItem.PropertyChanged += MailPropChanged; mailItem.PropertyChanged += MailPropChanged;
} }