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; }