private static ItemsControl FindVisualContainerForViewModel(ItemsControl menuLayoutTree, FolderViewModel root, FileNodeViewModel item) { var container = menuLayoutTree; var path = new List <IFileContainer>(); var parent = item.Parent; while (parent != root.Model) { path.Add(parent); parent = parent.Parent; } path.Reverse(); FolderViewModel containerViewModel = root; foreach (var element in path) { containerViewModel = containerViewModel.FindViewModelForModel(element); container = container.ItemContainerGenerator.ContainerFromItem(containerViewModel) as ItemsControl; } return(container); }