More interactions with threads.

This commit is contained in:
Burak Kaan Köse
2025-10-27 01:43:36 +01:00
parent 54ac07f6fb
commit 103841c364
6 changed files with 43 additions and 19 deletions
@@ -49,15 +49,23 @@ public partial class WinoThreadMailItemViewModelListViewItem : ListViewItem
if (innerControl == null || control == null || expander == null) return;
// 1
expander.IsExpanded = control.IsThreadExpanded;
// 2
if (control.IsThreadExpanded && innerControl.SelectedItems.Count == 0 && innerControl.Items.Count > 0)
{
innerControl.SelectedItem = innerControl.Items[0];
innerControl.SelectedItems.Clear();
// Make item selected, container might not be realized yet, so set on the model.
// It'll appear selected when container is realized.
var firstItem = innerControl.Items.FirstOrDefault() as MailItemViewModel;
firstItem?.IsSelected = true;
}
// 1
expander.IsExpanded = control.IsThreadExpanded;
// 3
if (!control.IsSelected) innerControl?.SelectedItems.Clear();
}
@@ -103,14 +111,6 @@ public partial class WinoThreadMailItemViewModelListViewItem : ListViewItem
mailItem.PropertyChanged += MailPropChanged;
}
private void ApplySelectionForModel(ThreadMailItemViewModel mailItem)
{
if (mailItem.IsThreadExpanded != IsThreadExpanded)
{
mailItem.IsThreadExpanded = IsThreadExpanded;
}
}
private void ApplySelectionForContainer(ThreadMailItemViewModel mailItem)
{
if (IsThreadExpanded != mailItem.IsThreadExpanded) IsThreadExpanded = mailItem.IsThreadExpanded;