void RecursiveCollectionViewFolder(ItemTreeViewModel _nItemViewModel, Folder _nFolder) { // Добавляем в коллекцию "ItemTreeViewModel ChildrenFolders" наши папки foreach (Folder ChildFolder in _nFolder.ChildFoldersList) { // Есть ли есть папка, значит создаем предстовление этой папки, инициализируем его ItemTreeViewModel tempItemFolderViewModel = new ItemTreeViewModel(_nItemViewModel, ChildFolder.FolderName, ChildFolder.FullPatch); // Заносим в корневой экземпляр текущий tempItemViewModel _nItemViewModel.ChildrenFolders.Add(tempItemFolderViewModel); // Запускаем рекурсию RecursiveCollectionViewFolder(tempItemFolderViewModel, ChildFolder); } //добавить коллекцию файлов foreach (File itemFile in _nFolder.ChildFilesList) { _nItemViewModel.ChildrenFiles.Add(new FileViewModel() { GetFileTitle = itemFile.FileName, GetFilePath = itemFile.FilePath }); } }
public static FolderViewModel ReturnFolderViewModel(ItemTreeViewModel _item) { if (_item == null) { //System.Windows.MessageBox.Show("Вы находитесь в корневой директории"); // _item = CreatCollectionModel.rootItemViewModel; return(null); } FolderViewModel result = new FolderViewModel { FolderTitle = _item.NameFolder, FolderPath = _item.FolderPath, UpItemTreeViewFolder = _item.UpFolder, ChildrenFileViewModelsCollection = _item.ChildrenFiles }; // Необходим для окрытия диалоговых окон //if (FolderViewModel.GetMainViewModel == null) //{ // FolderViewModel.GetMainViewModel = this; //} return(result); }
//FolderViewModel GetCurentItemViewModel { get; set; } // Возвращаем полную коллекцию FolderViewModel public ObservableCollection <ItemTreeViewModel> RecursiveCreateCollectionViewModelAll() { // Инициализируем экземпляр rootItemViewModel = new ItemTreeViewModel(rootFolderObj.FolderName, rootFolderObj.FullPatch); // Сопостовляем с root //rootItemViewModel = GetCurentItemViewModel; // Инициализируем коллекцию mItemTreeViewItems = new ObservableCollection <ItemTreeViewModel>(); // запускаем рекурсию создании полной коллекции RecursiveCollectionViewFolder(rootItemViewModel, rootFolderObj); // Добовляем в коллекцию Item from Root foreach (ItemTreeViewModel _n in rootItemViewModel.ChildrenFolders) { mItemTreeViewItems.Add(_n); } // Возвращаем коллекцию return(mItemTreeViewItems); }