public override void Update() { LeftSideSelectionViewModel.ChangeDataModelPath(DataModelConditionList.ListPath); NotifyOfPropertyChange(nameof(SelectedListOperator)); // Remove VMs of effects no longer applied on the layer Items.RemoveRange(Items.Where(c => !DataModelConditionList.Children.Contains(c.Model)).ToList()); if (DataModelConditionList.ListPath == null || !DataModelConditionList.ListPath.IsValid) { return; } List <DataModelConditionViewModel> viewModels = new(); foreach (DataModelConditionPart childModel in Model.Children) { if (Items.Any(c => c.Model == childModel)) { continue; } if (!(childModel is DataModelConditionGroup dataModelConditionGroup)) { continue; } DataModelConditionGroupViewModel viewModel = _dataModelConditionsVmFactory.DataModelConditionGroupViewModel(dataModelConditionGroup, ConditionGroupType.List); viewModel.IsRootGroup = true; viewModels.Add(viewModel); } if (viewModels.Any()) { Items.AddRange(viewModels); } foreach (DataModelConditionViewModel childViewModel in Items) { childViewModel.Update(); } }