private static void ExpandAndScrollRecursive(RadTreeListView treeListView, object item, IList <object> itemsToExpand)
        {
            treeListView.ScrollIntoViewAsync(item, (f) =>
            {
                treeListView.ExpandHierarchyItem(item);

                itemsToExpand.Remove(item);

                ExpandAndScrollRecursive(treeListView, itemsToExpand.FirstOrDefault(), itemsToExpand);
            });
        }
        private static void ExpandAndScrollRecursive(RadTreeListView treeListView, object item, IList<object> itemsToExpand)
        {
            treeListView.ScrollIntoViewAsync(item, (f) =>
            {
                treeListView.ExpandHierarchyItem(item);

                itemsToExpand.Remove(item);

                ExpandAndScrollRecursive(treeListView, itemsToExpand.FirstOrDefault(), itemsToExpand);
            });
        }
        public static void ExpandItemIntoView(this RadTreeListView treeListView, object item)
        {
            if (treeListView.Items.IndexOf(item) == -1)
            {
                var filterDescriptor = new FilterDescriptor <object>()
                {
                    FilteringExpression = i => i == item
                };
                treeListView.FilterDescriptors.Add(filterDescriptor);

                var itemsToExpand = new List <object>(treeListView.Items.OfType <object>());

                treeListView.FilterDescriptors.Remove(filterDescriptor);

                ExpandAndScrollRecursive(treeListView, itemsToExpand.FirstOrDefault(), itemsToExpand);
            }
            else
            {
                treeListView.ScrollIntoViewAsync(item, (f) =>
                {
                    treeListView.ExpandHierarchyItem(item);
                });
            }
        }