protected FileSystemEntryViewModel( ICodeSearchController controller, TreeViewItemViewModel parentViewModel, bool lazyLoadChildren) : base(controller, parentViewModel, lazyLoadChildren) { }
protected FileSystemEntryViewModel( ISourceExplorerViewModelHost host, TreeViewItemViewModel parentViewModel, bool lazyLoadChildren) : base(host, parentViewModel, lazyLoadChildren) { }
public CodeSearchItemViewModelBase( ICodeSearchController controller, TreeViewItemViewModel parent, bool lazyLoadChildren) : base(controller.StandarImageSourceFactory, parent, lazyLoadChildren) { _controller = controller; }
public static FileSystemEntryViewModel Create(ISourceExplorerViewModelHost host, TreeViewItemViewModel parentViewModel, FileSystemEntry fileSystemEntry) { var fileEntry = fileSystemEntry as FileEntry; if (fileEntry != null) return new FileEntryViewModel(host, parentViewModel, fileEntry); else return new DirectoryEntryViewModel(host, parentViewModel, (DirectoryEntry)fileSystemEntry); }
public static FileSystemEntryViewModel Create(ICodeSearchController host, TreeViewItemViewModel parentViewModel, FileSystemEntry fileSystemEntry) { var fileEntry = fileSystemEntry as FileEntry; if (fileEntry != null) return new FileEntryViewModel(host, parentViewModel, fileEntry); else return new DirectoryEntryViewModel(host, parentViewModel, (DirectoryEntry)fileSystemEntry); }
public SourceExplorerItemViewModelBase( ISourceExplorerViewModelHost host, TreeViewItemViewModel parent, bool lazyLoadChildren) : base(host.StandarImageSourceFactory, parent, lazyLoadChildren) { _host = host; }
public DirectoryEntryViewModel( ICodeSearchController controller, TreeViewItemViewModel parentViewModel, DirectoryEntry directoryEntry) : base(controller, parentViewModel, directoryEntry.Entries.Count > 0) { _directoryEntry = directoryEntry; _children = new Lazy<IList<TreeViewItemViewModel>>(CreateChildren); }
public DirectoryEntryViewModel( ISourceExplorerViewModelHost host, TreeViewItemViewModel parentViewModel, DirectoryEntry directoryEntry) : base(host, parentViewModel, directoryEntry.Entries.Count > 0) { _directoryEntry = directoryEntry; _children = new Lazy<IList<TreeViewItemViewModel>>(CreateChildren); }
public VoceReportTreeview(string label, TreeViewItemViewModel parent) : base(label, parent) { IsExpanded = true; Voce = label; if (parent != null) { parent.Children.Add(this); } }
private string GetComponentName(TreeViewItemViewModel tree) { if (tree.Parent is NamingServiceItemViewModel) { return(tree.Name); } else { return(GetComponentName(tree.Parent) + "/" + tree.Name); } }
private string GetNamingName(TreeViewItemViewModel tree) { if (tree.Parent == null) { return(tree.Name); } else { return(GetNamingName(tree.Parent) + "/" + tree.Name); } }
public DirectoryEntryViewModel( ICodeSearchController controller, TreeViewItemViewModel parentViewModel, DirectoryEntry directoryEntry, Action <FileSystemEntryViewModel> postCreate) : base(controller, parentViewModel, directoryEntry.Entries.Count > 0) { _directoryEntry = directoryEntry; _postCreate = postCreate; _children = new Lazy <IList <TreeViewItemViewModel> >(CreateChildren); }
private DocumentViewModel OpenDocument(TreeViewItemViewModel model) { if (model == null) { return(DocumentViewModel.Empty); } var filePath = model.FullName; return(OpenFile(model, filePath)); }
private List <TreeViewItemViewModel> CreateInfromationMessages(params string[] messages) { var result = new List <TreeViewItemViewModel>(); var rootNode = new RootTreeViewItemViewModel(StandarImageSourceFactory); foreach (var text in messages) { result.Add(new TextItemViewModel(StandarImageSourceFactory, rootNode, text)); } TreeViewItemViewModel.ExpandNodes(result, true); return(result); }
/// <summary> /// Carga los nodos hijos de un árbol /// </summary> private void LoadNodes(TreeViewItemsViewModelCollection nodes, TreeViewItemViewModel nodeParent, FilesModelCollection files) { foreach (FileModel file in files) { TreeViewItemViewModel node; // Si es un archivo del tipo seleccionado, se añade al árbol, si no, se considera el nodo igual que el padre // y se siguen añadiendo hijos if (DocumentType == FileModel.DocumentType.Unknown || DocumentType == FileModel.DocumentType.File || DocumentType == file.FileType || IsReference(file, DocumentType)) { // Crea un nuevo nodo node = new TreeViewItemViewModel(file.FullFileName, file.Title, nodeParent, false, file); node.IsExpanded = true; // Selecciona el nodo if (Files != null) { node.IsChecked = Files.ExistsByIDFileName(file.IDFileName); } // Lo añade al árbol if (nodeParent == null) { nodes.Add(node); } else { nodeParent.Children.Add(node); } } else { node = nodeParent; } // Añade el manejador de eventos if (node != null) { node.PropertyChanged += (sender, evntArgs) => { if (evntArgs.PropertyName.EqualsIgnoreCase(nameof(TreeViewItemViewModel.IsChecked)) || evntArgs.PropertyName.EqualsIgnoreCase(nameof(TreeViewItemViewModel.IsSelected))) { IsTreeeUpdated = true; } } } ; // Añade los nodos hijo if (file.IsFolder) { LoadNodes(nodes, node, new Application.Bussiness.Solutions.FileBussiness().Load(file)); } } }
internal void UpdateBookmarkItems() { var query = from item in TreeViewItemViewModel.Descendants(this.bookmarkCategory) select TreeViewItemViewModel.BuildRelativePath(this.bookmarkCategory, item, IsCategory); this.BookmarkItems = query.ToArray(); bool IsCategory(TreeViewItemViewModel viewModel) { return(viewModel is BookmarkRootTreeViewItemViewModel || viewModel is BookmarkCategoryTreeViewItemViewModel); } }
public FlatFilePositionViewModel( ICodeSearchController controller, TreeViewItemViewModel parentViewModel, DirectoryEntry directoryEntry, FileEntry fileEntry, FilePositionSpan matchPosition) : base(controller, parentViewModel, fileEntry.Data != null) { _directoryEntry = directoryEntry; _fileEntry = fileEntry; _matchPosition = matchPosition; }
private List <TreeViewItemViewModel> CreateSearchCodeResultViewModel(DirectoryEntry searchResults, string description, bool expandAll) { var rootNode = new RootTreeViewItemViewModel(StandarImageSourceFactory); var result = new List <TreeViewItemViewModel> { new TextItemViewModel(StandarImageSourceFactory, rootNode, description) } .Concat(searchResults.Entries.Select(x => FileSystemEntryViewModel.Create(this, rootNode, x, _ => { }))) .ToList(); result.ForAll(rootNode.AddChild); TreeViewItemViewModel.ExpandNodes(result, expandAll); return(result); }
public CodeSearchItemViewModelBase( ICodeSearchController controller, TreeViewItemViewModel parent, bool lazyLoadChildren) : base(controller.StandarImageSourceFactory, parent, lazyLoadChildren) { _controller = controller; var con = controller as CodeSearchController; if (con != null && con.ViewModel.ExpandAll) { LazySelect = (TreeViewItemViewModel x) => { ExpandAll(x); } } ; }
public TreeViewItemViewModel GetBookmarkItem(string path) { var items = TreeViewItemViewModel.FamilyTree(this.BookmarkCategory); foreach (var item in items) { var itemmPath = TreeViewItemViewModel.BuildRelativePath(this.BookmarkCategory, item); if (path == itemmPath) { return(item); } } return(null); }
public static FileSystemEntryViewModel Create( ICodeSearchController host, TreeViewItemViewModel parentViewModel, FileSystemEntry fileSystemEntry, Action<FileSystemEntryViewModel> postCreate) { var fileEntry = fileSystemEntry as FileEntry; if (fileEntry != null) { var result = new FileEntryViewModel(host, parentViewModel, fileEntry); postCreate(result); return result; } else { var result = new DirectoryEntryViewModel(host, parentViewModel, (DirectoryEntry) fileSystemEntry, postCreate); postCreate(result); return result; } }
private DirectoryEntryViewModel GetChromiumRoot(DirectoryEntryViewModel directoryEntry) { for (TreeViewItemViewModel parent = directoryEntry; parent != null; parent = parent.ParentViewModel) { if (parent.ParentViewModel == null) { var model = parent as DirectoryEntryViewModel; if (model != null) { return(model); } break; } } return(null); }
public override TreeViewItemViewModel CreateTreeViewItemViewModel(TreeViewItemViewModel parent, object item) { if (item is string path) { item = this.GetDescriptor(path); } if (item is ITypeDescriptor descriptor) { if (parent is BookmarkRootTreeViewItemViewModel || parent is BookmarkCategoryTreeViewItemViewModel) { return(new BookmarkTypeTreeViewItemViewModel(this.authenticator, descriptor, this)); } return(new TypeTreeViewItemViewModel(this.authenticator, new TypeDescriptor(this.authenticator, descriptor, true, this), this)); } return(null); }
private void SelectScreen(TreeViewItemViewModel treeViewItemViewModel) { foreach (var editStageTreeViewItem in TreeView) { foreach (var viewItemViewModel in editStageTreeViewItem.Children) { //if (viewItemViewModel == treeViewItemViewModel) viewItemViewModel.IsSelected = false; } } // espandere parent.. treeViewItemViewModel.IsSelected = true; if (treeViewItemViewModel.Parent != null) { treeViewItemViewModel.Parent.IsExpanded = true; } }
private List <TreeViewItemViewModel> CreateSearchCodeResultViewModel( DirectoryEntry searchResults, string description, string additionalWarning, bool expandAll) { var rootNode = new RootTreeViewItemViewModel(StandarImageSourceFactory); var result = Enumerable .Empty <TreeViewItemViewModel>() .ConcatSingle(new TextItemViewModel(StandarImageSourceFactory, rootNode, description)) .ConcatSingle(new TextWarningItemViewModel(StandarImageSourceFactory, rootNode, additionalWarning), () => !string.IsNullOrEmpty(additionalWarning)) .Concat(searchResults.Entries.Select(x => FileSystemEntryViewModel.Create(this, rootNode, x, _ => { }))) .ToList(); result.ForAll(rootNode.AddChild); TreeViewItemViewModel.ExpandNodes(result, expandAll); return(result); }
private void ShrinkChildren(TreeViewItemViewModel item, int level) { int tmp = level + 1; if (item.Children.Count > 0 && item.Children[0].IsExpanded && tmp >= Level) { foreach (var child in item.Children) { child.IsExpanded = false; } } else if (item.Children.Count > 0) { foreach (var child in item.Children) { ShrinkChildren(child, tmp); } } }
private void ExpandChildren(TreeViewItemViewModel item, int level) { int tmp = level + 1; if (item.Children.Count > 0 && item.Children[0].IsExpanded) { foreach (var child in item.Children) { ExpandChildren(child, tmp); } } else if (item.Children.Count > 0) { foreach (var child in item.Children.ToList()) { child.IsExpanded = true; } } }
private void PrintChildren(TreeViewItemViewModel item, int level) { string prefix = string.Empty; for (int i = 0; i < level; i++) { prefix += " "; } OutputList.Add(prefix + item.Name); foreach (var child in item.Children) { if (child.IsExpanded) { PrintChildren(child, level + 1); } } }
/// <summary> /// Carga los nodos hijos de un árbol /// </summary> private void LoadNodes(TreeViewItemsViewModelCollection nodes, TreeViewItemViewModel nodeParent, FileModelCollection files) { foreach (FileModel file in files) { TreeViewItemViewModel node; // Crea un nuevo nodo node = new TreeViewItemViewModel(file.FullFileName, file.Name, nodeParent, false, file); node.IsExpanded = true; // Selecciona el nodo if (files != null) { node.IsChecked = FilesSelected.ExistsByFileName(file.FullFileName); } // Lo añade al árbol if (nodeParent == null) { nodes.Add(node); } else { nodeParent.Children.Add(node); } // Añade el manejador de eventos if (node != null) { node.PropertyChanged += (sender, evntArgs) => { if (evntArgs.PropertyName.EqualsIgnoreCase("IsChecked") || evntArgs.PropertyName.EqualsIgnoreCase("IsSelected")) { IsTreeeUpdated = true; } } } ; // Añade los nodos hijo if (file.IsFolder) { LoadNodes(nodes, node, file.Files); } } }
public void BringItemViewModelToView(TreeViewItemViewModel item) { // We look for the tree view item corresponding to "item", swallowing // the "BringIntoView" request to avoid flickering as we descend into // the virtual tree and realize the sub-panels at each level. _control.SwallowsRequestBringIntoView(true); var treeViewItem = SelectTreeViewItem(_control.FileTreeView, item); // If we found it, allow the "BringIntoView" requests to be handled // and ask the tree view item to bring itself into view. // Note: The "BrinIntoView" call is a no-op if the tree view item // is already visible. if (treeViewItem != null) { _control.SwallowsRequestBringIntoView(false); treeViewItem.BringIntoView(); _control.SwallowsRequestBringIntoView(true); } }
public static FileSystemEntryViewModel Create( ICodeSearchController host, TreeViewItemViewModel parentViewModel, FileSystemEntry fileSystemEntry, Action <FileSystemEntryViewModel> postCreate) { var fileEntry = fileSystemEntry as FileEntry; if (fileEntry != null) { var result = new FileEntryViewModel(host, parentViewModel, fileEntry); postCreate(result); return(result); } else { var result = new DirectoryEntryViewModel(host, parentViewModel, (DirectoryEntry)fileSystemEntry, postCreate); postCreate(result); return(result); } }
public bool ExecuteOpenCommandForItem(TreeViewItemViewModel tvi) { if (tvi == null) { return(false); } if (!tvi.IsSelected) { return(false); } { var filePosition = tvi as FilePositionViewModel; if (filePosition != null) { filePosition.OpenCommand.Execute(filePosition); return(true); } } { var fileEntry = tvi as FileEntryViewModel; if (fileEntry != null) { fileEntry.OpenCommand.Execute(fileEntry); return(true); } } { var directoryEntry = tvi as DirectoryEntryViewModel; if (directoryEntry != null) { directoryEntry.OpenCommand.Execute(directoryEntry); return(true); } } return(false); }
private void TreeSelectedItem_Changed(object sender, RoutedPropertyChangedEventArgs <object> e) { var tv = (TreeView)sender; var tvi = tv.SelectedItem; if (tvi == null) { return; } _selectedItem = (TreeViewItemViewModel)tvi; AllSamplingEntitiesEventHandler args = new AllSamplingEntitiesEventHandler(); string treeViewEntity = tvi.GetType().Name; args.TreeViewEntity = treeViewEntity; switch (treeViewEntity) { case "tv_ProjectSettingViewModel": args.ProjectSetting = ((tv_ProjectSettingViewModel)tvi)._projectSetting; break; case "tv_LandingSiteViewModel": args.LandingSite = ((tv_LandingSiteViewModel)tvi)._landingSite; args.ProjectSetting = ((tv_LandingSiteViewModel)tvi)._projectSetting; break; case "tv_GearViewModel": args.Gear = ((tv_GearViewModel)tvi)._gear; args.LandingSite = ((tv_GearViewModel)tvi)._landingSite; args.ProjectSetting = ((tv_GearViewModel)tvi)._projectSetting; break; case "tv_MonthFishingViewModel": args.MonthSampled = DateTime.Parse(((tv_MonthFishingViewModel)tvi)._month); args.Gear = ((tv_MonthFishingViewModel)tvi)._gear; args.LandingSite = ((tv_MonthFishingViewModel)tvi)._landingSite; args.ProjectSetting = ((tv_MonthFishingViewModel)tvi)._projectSetting; break; } TreeViewItemSelected?.Invoke(this, args); }
private static DocumentViewModel OpenFile(TreeViewItemViewModel model, string filePath) { if (string.IsNullOrWhiteSpace(filePath)) { return(DocumentViewModel.Empty); } if (!File.Exists(filePath)) { return(DocumentViewModel.Empty); } using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read)) { using (StreamReader reader = FileReader.OpenStream(fs, Encoding.UTF8)) { var syntax = HighlightingManager.Instance.GetDefinitionByExtension(Path.GetExtension(filePath)); var content = new TextDocument(reader.ReadToEnd()); var title = Path.GetFileName(filePath); var document = new DocumentViewModel { AssociatedModel = model, Content = content, Syntax = syntax, Title = title }; return(document); //TODO read only support //if ((System.IO.File.GetAttributes(this._filePath) & FileAttributes.ReadOnly) != 0) //{ // this.IsReadOnly = true; // this.IsReadOnlyReason = "This file cannot be edit because another process is currently writting to it.\n" + // "Change the file access permissions or save the file in a different location if you want to edit it."; //} } } }
public static ToolTreeViewItemViewModel GetViewModel(Utensile tool, TreeViewItemViewModel parent) { if (tool is DrillTool) { return(new PuntaViewModel(tool as DrillTool, parent)); } if (tool is FresaCandela) { return(new FresaCandelaViewModel(tool as FresaCandela, parent)); } if (tool is FresaFilettare) { return(new FresaFilettareViewModel(tool as FresaFilettare, parent)); } if (tool is FresaSpianare) { return(new FresaSpianareViewModel(tool as FresaSpianare, parent)); } if (tool is UtensileTornitura) { return(new UtensileTornituraViewModel(tool as UtensileTornitura, parent)); } if (tool is UtensileScanalatura) { return(new UtensileTornituraScanalaturaViewModel(tool as UtensileScanalatura, parent)); } if (tool is UtensileFilettare) { return(new UtensileFilettaturaViewModel(tool as UtensileFilettare, parent)); } throw new NotImplementedException(); }
private List <TreeViewItemViewModel> CreateErrorResponseViewModel(ErrorResponse errorResponse) { var messages = new List <TreeViewItemViewModel>(); if (errorResponse.IsRecoverable()) { // For a recoverable error, the deepest exception contains the // "user friendly" error message. var rootError = new TextWarningItemViewModel( StandarImageSourceFactory, null, errorResponse.GetBaseError().Message); messages.Add(rootError); } else { var message = ViewModel.ServerHasStarted ? "There was an issue sending a request to the index server." : "There was an issue starting the index server."; // In case of non recoverable error, display a generic "user friendly" // message, with nested nodes for exception messages. var rootError = new TextErrorItemViewModel( StandarImageSourceFactory, null, message + " You may need to restart Visual Studio."); messages.Add(rootError); // Add all errors to the parent while (errorResponse != null) { rootError.Children.Add(new TextItemViewModel(StandarImageSourceFactory, rootError, errorResponse.Message)); errorResponse = errorResponse.InnerError; } } TreeViewItemViewModel.ExpandNodes(messages, true); return(messages); }
public static GovSessions OpenFile(TreeViewItemViewModel vm, bool isSessionManager) { try { var folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog(); if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { var gSessions = LoadAllGovSession(folderBrowserDialog1.SelectedPath); for (int i = 0; i < gSessions.Count; i++) { GovSession govSession = gSessions[i]; var govSes = GetSessionItem(govSession, isSessionManager); SCUtility.InitialPreOrderItems(ref govSession, ref govSes); /* * // * // load Quran Folder * if (System.IO.Directory.Exists(govSession._PhysicalPath + "\\Quran")) //(govOrder.Children[0].Title.Contains("تلاوت")) * { * var quranViewer = new Tools.FolderLaws.LawView(); * var files = System.IO.Directory.GetFiles(govSession._PhysicalPath + "\\Quran"); * * var quranItm = new SessionItemViewModel(govSes); * * if (files.Length > 0) * { * * quranItm.Title = Path.GetFileNameWithoutExtension(files[0]); * quranItm.Object = files[0]; * quranItm.ObjectViewer = quranViewer; * } * * if (govSession.PreOrders != null && govSession.PreOrders.Count > 0) * { * var orderedItems = govSession.PreOrders.OrderBy(x => x.OrderInSession).ToList(); * * if (((Sbn.Products.GEP.GEPObject.PreSessionOrder)orderedItems[0]).Title.Contains("تلاوت")) * { * quranItm.Title = ((Sbn.Products.GEP.GEPObject.PreSessionOrder)orderedItems[0]).Title; * * quranItm.TitleBackColor = ((Sbn.Products.GEP.GEPObject.PreSessionOrder)orderedItems[0]).TitleBackColor; * quranItm.TitleForeColor = ((Sbn.Products.GEP.GEPObject.PreSessionOrder)orderedItems[0]).TitleForeColor; * govSes.Children.Insert(0, quranItm); * } * } * } * // * * // Load News Folder * * if (System.IO.Directory.Exists(govSession._PhysicalPath + "\\News"))//(govOrder.Children[0].Title.Contains("اخبار") || govOrder.Children[1].Title.Contains("اخبار")) * { * * * * * var newsParent = new SessionItemViewModel(govSes); * newsParent.Title = "بررسي و تبادل اخبار و اطلاعات در مورد مهمترين مسائل اجرايي روز كشور"; * newsParent.Object = "بررسي و تبادل اخبار و اطلاعات در مورد مهمترين مسائل اجرايي روز كشور"; * newsParent.ObjectViewer = null; * newsParent.ObjectViewer = new SessionPresent.Tools.FolderLaws.LawsSearchView(); * * * var quranViewer = new Tools.FolderLaws.LawView(); * var files = System.IO.Directory.GetFiles(govSession._PhysicalPath + "\\News"); * foreach (string sfile in files) * { * var newsItm = new SessionItemViewModel(newsParent); * * newsItm.Title = Path.GetFileNameWithoutExtension(sfile); * newsItm.Object = sfile; * newsItm.ObjectViewer = quranViewer; * newsItm.IsVisibleInSessionOrderTree = false; * newsParent.Children.Add(newsItm); * } * //if (NewsItem != null) * { * if (govSes.Children[0].Title.Contains("تلاوت")) * { * //govOrder.Children.RemoveAt(0); * if (govSession.PreOrders != null) * { * var orderedItems = govSession.PreOrders.OrderBy(x => x.OrderInSession).ToList(); * * if (govSession.PreOrders.Count > 1) * { * if (((Sbn.Products.GEP.GEPObject.PreSessionOrder)orderedItems[1]).Title.Contains("اخبار")) * { * newsParent.TitleBackColor = ((Sbn.Products.GEP.GEPObject.PreSessionOrder)orderedItems[1]).TitleBackColor; * newsParent.TitleForeColor = ((Sbn.Products.GEP.GEPObject.PreSessionOrder)orderedItems[1]).TitleForeColor; * } * } * * if (govSession.PreOrders.Count == 1) * { * if (((Sbn.Products.GEP.GEPObject.PreSessionOrder)orderedItems[0]).Title.Contains("اخبار")) * { * newsParent.TitleBackColor = ((Sbn.Products.GEP.GEPObject.PreSessionOrder)orderedItems[0]).TitleBackColor; * newsParent.TitleForeColor = ((Sbn.Products.GEP.GEPObject.PreSessionOrder)orderedItems[0]).TitleForeColor; * } * } * } * govSes.Children.Insert(1, newsParent); * } * else * { * //govOrder.Children.RemoveAt(1); * govSes.Children.Insert(0, newsParent); * } * } * } * // */ govSes.BackColor = System.Drawing.Color.DarkGreen.Name; govSes.ItemWidth = 200; govSes.ItemIcon = "BookOpen"; vm.Children.Add(govSes); } return(gSessions); } } catch { } return(new GovSessions()); }
/// <summary> /// Initializes a new instance of the <see cref="ObjectContainerViewModel"/> class. /// </summary> /// <param name="parent"> /// Parent view model. /// </param> /// <param name="obj"> /// Object to be displayed. /// </param> /// <param name="name"> /// Name of the view model. /// </param> public ObjectContainerViewModel(TreeViewItemViewModel parent, object obj, string name) : base(parent, name, true) { this._obj = obj; }
public UtensileTornituraScanalaturaViewModel(UtensileScanalatura fresaTool, TreeViewItemViewModel parent) : base(fresaTool, parent) { _utensileTornitura = fresaTool; }
public FileEntryViewModel(ICodeSearchController controller, TreeViewItemViewModel parentViewModel, FileEntry fileEntry) : base(controller, parentViewModel, fileEntry.Data != null) { _fileEntry = fileEntry; _children = new Lazy<IList<TreeViewItemViewModel>>(CreateChildren); }
public FileEntryViewModel(ISourceExplorerViewModelHost host, TreeViewItemViewModel parentViewModel, FileEntry fileEntry) : base(host, parentViewModel, fileEntry.Data != null) { _fileEntry = fileEntry; _children = new Lazy<IList<TreeViewItemViewModel>>(CreateChildren); }