예제 #1
0
 /// <summary>
 /// Default constructor that gives full control over the tree srtucture
 /// </summary>
 /// <param name="parentFileSystemItem">Parent FileSystemItemModel</param>
 /// <param name="node">A fileSystemInfo object in the directory tree that describes a folder and its associated files</param>
 /// <param name="childElements">A collection of <see cref="FileSystemItemModel"/>s describing the subdirectories contained by this fileSystemInfo object</param>
 public FileSystemItemModel(FileSystemItemModel parentFileSystemItem, FileSystemInfo fileSystemElementInfo, IEnumerable <IFileSystemItemModel> childElements)
 {
     this.ParentFileSystemItem = parentFileSystemItem;
     this.Info                 = fileSystemElementInfo;
     this.DisplayName          = this.Info?.Name ?? string.Empty;
     this.ChildFileSystemItems = new ObservableCollection <IFileSystemItemModel>(childElements);
     this.IsArchive            = false;
     this.Id = Guid.NewGuid();
 }
예제 #2
0
        // Uses preorder traversal
        public static bool TryGetDirectoryElementOf(IFileSystemItemModel currentItemModel, out IFileSystemItemModel directoryItemModel)
        {
            directoryItemModel = null;

            if (currentItemModel.IsDirectory)
            {
                directoryItemModel = currentItemModel;
                return(true);
            }

            return(FileSystemItemModel.TryGetDirectoryElementOf(currentItemModel.ParentFileSystemItem, out directoryItemModel));
        }