Skip to content

Commit 3f2b9bc

Browse files
authored
Merge pull request #31 from jdunlap/master
Clearing items in a DarkDropDown does not clear the menu
2 parents 79db58c + be8cbad commit 3f2b9bc

3 files changed

Lines changed: 18 additions & 3 deletions

File tree

DarkUI/Collections/ObservableList.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,15 @@ protected virtual void Dispose(bool disposing)
8080
ItemsRemoved(this, new ObservableListModified<T>(new List<T> { item }));
8181
}
8282

83+
public new void Clear()
84+
{
85+
ObservableListModified<T> removed = new ObservableListModified<T>(this.ToList<T>());
86+
base.Clear();
87+
88+
if (removed.Items.Count() > 0 && ItemsRemoved != null)
89+
ItemsRemoved(this, removed);
90+
}
91+
8392
#endregion
8493
}
8594
}

DarkUI/Controls/DarkDropdownList.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,12 @@ private void Items_CollectionChanged(object sender, NotifyCollectionChangedEvent
257257
}
258258
}
259259

260+
if (e.Action == NotifyCollectionChangedAction.Reset)
261+
{
262+
_menu.Items.Clear();
263+
SelectedItem = null;
264+
}
265+
260266
ResizeMenu();
261267
}
262268

DarkUI/Controls/DarkTreeView.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -566,16 +566,16 @@ private void UpdateNodes()
566566
if (IsDragging)
567567
return;
568568

569+
ContentSize = new Size(0, 0);
570+
569571
if (Nodes.Count == 0)
570572
return;
571573

572574
var yOffset = 0;
573575
var isOdd = false;
574576
var index = 0;
575577
DarkTreeNode prevNode = null;
576-
577-
ContentSize = new Size(0, 0);
578-
578+
579579
for (var i = 0; i <= Nodes.Count - 1; i++)
580580
{
581581
var node = Nodes[i];

0 commit comments

Comments
 (0)