public void HasChildElementsUpdates() { var property = new Mock <IPropertyInfo> (); property.Setup(p => p.Name).Returns("Name"); property.Setup(p => p.Category).Returns("Category"); property.Setup(p => p.Type).Returns(typeof(string)); property.Setup(p => p.IsUncommon).Returns(false); var editor = new MockObjectEditor(property.Object); var propertyVm = new StringPropertyViewModel(MockEditorProvider.MockPlatform, property.Object, new[] { editor }); var group = new PanelGroupViewModel(MockEditorProvider.MockPlatform, "Category", new[] { propertyVm }); Assert.That(group.HasChildElements, Is.True); bool changed = false; group.PropertyChanged += (sender, args) => { if (args.PropertyName == nameof(PanelGroupViewModel.HasChildElements)) { changed = true; } }; group.Remove(propertyVm); Assert.That(group.HasChildElements, Is.False); Assert.That(changed, Is.True, "INPC did not fire for HasChildElements during remove"); changed = false; group.Add(propertyVm); Assert.That(group.HasChildElements, Is.True); Assert.That(changed, Is.True, "INPC did not fire for HasChildElements during add"); }
private void GetVMGroupCellItendifiterFromFacade(NSObject item, out EditorViewModel vm, out PanelGroupViewModel group, out string cellIdentifier) { var facade = (NSObjectFacade)item; vm = facade.Target as EditorViewModel; group = facade.Target as PanelGroupViewModel; cellIdentifier = facade.Target == null ? nameof(PanelHeaderEditorControl) : (group == null) ? vm.GetType().FullName : group.Category; }