private void ExpandNextItemInQueueAndSelectIfLastItem(ItemCollection items, ItemContainerGenerator itemContainerGenerator)
        {
            var sampleName = _queueOfIndividualnodesToExpandAndSelectTheLast.Dequeue();
            var sample = items.FirstOrDefault(s => (
                        ((s is Sample) && ((Sample)s).Name == sampleName)
                        || ((s is Group) && ((Group)s).Name == sampleName))
                        );
            if (sample == null)
                return; 
            var container = (TreeViewItem)itemContainerGenerator.ContainerFromItem(sample);

                if (_queueOfIndividualnodesToExpandAndSelectTheLast.Count == 0)
                {
                    container.IsSelected = true;
                }
                else
                {
                    ExpandNextItemInQueueAndSelectIfLastItem(container.Items, container.ItemContainerGenerator);
                }
        }