diff --git a/DarkUI/Collections/ObservableList.cs b/DarkUI/Collections/ObservableList.cs index 26d683b..0cfb05a 100644 --- a/DarkUI/Collections/ObservableList.cs +++ b/DarkUI/Collections/ObservableList.cs @@ -80,6 +80,15 @@ protected virtual void Dispose(bool disposing) ItemsRemoved(this, new ObservableListModified(new List { item })); } + public new void Clear() + { + ObservableListModified removed = new ObservableListModified(this.ToList()); + base.Clear(); + + if (removed.Items.Count() > 0 && ItemsRemoved != null) + ItemsRemoved(this, removed); + } + #endregion } } diff --git a/DarkUI/Controls/DarkDropdownList.cs b/DarkUI/Controls/DarkDropdownList.cs index ad43722..d9158dc 100644 --- a/DarkUI/Controls/DarkDropdownList.cs +++ b/DarkUI/Controls/DarkDropdownList.cs @@ -257,6 +257,12 @@ private void Items_CollectionChanged(object sender, NotifyCollectionChangedEvent } } + if (e.Action == NotifyCollectionChangedAction.Reset) + { + _menu.Items.Clear(); + SelectedItem = null; + } + ResizeMenu(); } diff --git a/DarkUI/Controls/DarkTreeView.cs b/DarkUI/Controls/DarkTreeView.cs index 2d748bd..bfecb86 100644 --- a/DarkUI/Controls/DarkTreeView.cs +++ b/DarkUI/Controls/DarkTreeView.cs @@ -566,6 +566,8 @@ private void UpdateNodes() if (IsDragging) return; + ContentSize = new Size(0, 0); + if (Nodes.Count == 0) return; @@ -573,9 +575,7 @@ private void UpdateNodes() var isOdd = false; var index = 0; DarkTreeNode prevNode = null; - - ContentSize = new Size(0, 0); - + for (var i = 0; i <= Nodes.Count - 1; i++) { var node = Nodes[i];