public EntryItemViewModel(Entry entry, TreeViewItemViewModel parent, ManifestEditorViewModel editor, Descriptor descriptor)
			: base(parent)
		{
			if (entry == null)
				throw new ArgumentNullException("entry", "entry is null.");
			if (parent == null)
				throw new ArgumentNullException("parent", "parent is null.");
			if (editor == null)
				throw new ArgumentNullException("editor", "editor is null.");
			if (descriptor == null)
				throw new ArgumentNullException("descriptor", "descriptor is null.");


			_descriptor = descriptor;
			Entry = entry;
			_editor = editor;
			_entryEditor = new EntryEditorViewModel(entry, editor);
		    TreeItemLabel = entry.Name;
		    _entryEditor.PropertyChanged += (_, args) => { if (args.PropertyName == "Name") TreeItemLabel = entry.Name; };
			_collection = parent as IEntryItemCollection;
			if (_collection != null)
			{
				MenuItems = new List<MenuItemViewModel> { new MenuItemViewModel("Remove CI", new DelegateCommand(DoRemove), null) };
			}
			IsExpanded = true;
		}