Пример #1
0
        public override void Initialize()
        {
            base.Initialize();

            DataModelPropertiesViewModel eventDataModel = GetEventDataModel();

            LeftSideSelectionViewModel.ChangeDataModel(eventDataModel);
        }
        public override void Initialize()
        {
            base.Initialize();

            DataModelPropertiesViewModel listDataModel = GetListDataModel();

            LeftSideSelectionViewModel.ChangeDataModel(listDataModel);

            // If this is a primitive list the user doesn't have much to choose, so preselect the list item for them
            if (DataModelConditionListPredicate.DataModelConditionList.IsPrimitiveList && DataModelConditionListPredicate.LeftPath == null)
            {
                DataModelConditionListPredicate.UpdateLeftSide(listDataModel.Children.FirstOrDefault()?.DataModelPath);
                Update();
            }
        }
        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();
            }
        }
 public void Dispose()
 {
     LeftSideSelectionViewModel.Dispose();
     LeftSideSelectionViewModel.PropertySelected -= LeftSideSelectionViewModelOnPropertySelected;
 }