Skip to content

Commit a1262d2

Browse files
committed
unselect hidden childs on single selection (fix for test "TreeListView_CollapsingParentAndMovingSelection_ClearsSelectionsFromHiddenChildNode")
1 parent 5b51d66 commit a1262d2

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

src/MaterialDesignThemes.Wpf/TreeListView.cs

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,21 @@ private void TreeListView_SelectionChanged(object sender, SelectionChangedEventA
7676
return;
7777
}
7878

79+
bool isSingleSelection = Keyboard.Modifiers == ModifierKeys.None && e.AddedItems.Count == 1;
80+
// If no modifier keys, treat as single selection (like normal ListView)
81+
if (isSingleSelection)
82+
{
83+
// Remove all except the newly selected item
84+
var selected = e.AddedItems[0];
85+
SelectedItems.Clear();
86+
SelectedItems.Add(selected);
87+
return;
88+
}
89+
7990
// Remove unselected
80-
foreach (var item in e.RemovedItems)
91+
if (!IsCollapsingItem)
8192
{
82-
if (!IsCollapsingItem)
93+
foreach (var item in e.RemovedItems)
8394
{
8495
SelectedItems.Remove(item);
8596
}
@@ -88,7 +99,10 @@ private void TreeListView_SelectionChanged(object sender, SelectionChangedEventA
8899
// Add newly selected
89100
foreach (var item in e.AddedItems)
90101
{
91-
SelectedItems.Add(item);
102+
if (!SelectedItems.Contains(item))
103+
{
104+
SelectedItems.Add(item);
105+
}
92106
}
93107
}
94108

0 commit comments

Comments
 (0)