Ошибка ArgumentOutOfRangeException в ObservableCollection.Add()

Периодически при подключению к удаленному компьютеру по RDP в приложении вылетает ошибка ArgumentOutOfRangeException в при вызове метода ObservableCollection.Add(). Target: .NET Framework 4.7.2

public ObservableCollection<TreeViewItem> FolderTree;

private static void RootDirectotyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    var tab = (SqlControl)d;
    tab.FolderTree.Clear();
    var newPath = (string)e.NewValue;
    if (Directory.Exists(newPath))
    {
        var expandedDir = new DirectoryInfo(newPath);

        foreach (DirectoryInfo subDir in expandedDir.GetDirectories())
            tab.FolderTree.Add(CreateTreeItem(subDir));  // <--- Тут возникает ошибка
        foreach (var sub in expandedDir.GetFiles("*.dbf"))
            tab.FolderTree.Add(CreateTreeItem(sub));
    }
}

private static TreeViewItem CreateTreeItem(object o)
{
    TreeViewItem item = new TreeViewItem();
    item.Header = o.ToString();
    item.Tag = o;
    item.Items.Add("Loading...");
    return item;
}

Описание ошибки: System.ArgumentOutOfRangeException: 'Заданный аргумент находится вне диапазона допустимых значений. Имя параметра: index'

Стэк вызовов:

   at System.Windows.Media.VisualCollection.Insert(Int32 index, Visual visual)
   at System.Windows.Controls.Panel.AddChildren(GeneratorPosition pos, Int32 itemCount)
   at System.Windows.Controls.Panel.OnItemsChangedInternal(Object sender, ItemsChangedEventArgs args)
   at System.Windows.Controls.Panel.OnItemsChanged(Object sender, ItemsChangedEventArgs args)
   at System.Windows.Controls.ItemContainerGenerator.OnItemAdded(Object item, Int32 index)
   at System.Windows.Controls.ItemContainerGenerator.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args)
   at System.Windows.WeakEventManager.ListenerList`1.DeliverEvent(Object sender, EventArgs e, Type managerType)
   at System.Windows.WeakEventManager.DeliverEvent(Object sender, EventArgs args)
   at System.Collections.Specialized.CollectionChangedEventManager.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args)
   at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
   at System.Windows.Data.CollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args)
   at System.Windows.Controls.ItemCollection.OnViewCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
   at System.Windows.WeakEventManager.ListenerList`1.DeliverEvent(Object sender, EventArgs e, Type managerType)
   at System.Windows.WeakEventManager.DeliverEvent(Object sender, EventArgs args)
   at System.Collections.Specialized.CollectionChangedEventManager.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args)
   at System.Windows.Data.CollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args)
   at System.Windows.Data.ListCollectionView.ProcessCollectionChangedWithAdjustedIndex(NotifyCollectionChangedEventArgs args, Int32 adjustedOldIndex, Int32 adjustedNewIndex)
   at System.Windows.Data.ListCollectionView.ProcessCollectionChanged(NotifyCollectionChangedEventArgs args)
   at System.Windows.Data.CollectionView.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args)
   at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   at System.Collections.ObjectModel.ObservableCollection`1.InsertItem(Int32 index, T item)
   at System.Collections.ObjectModel.Collection`1.Add(T item)
   at DbfEditor.SqlControl.RootDirectotyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e) in D:\temp\SqlControl.xaml.cs:line 69

Ответы (0 шт):