/// <summary> /// Removes the subfields after. /// </summary> /// <param name="field">The field.</param> public void RemoveSubfieldsAfter(IDataTriggerSourceFieldViewModel field) { var position = Subfields.IndexOf(field); for (var i = Subfields.Count - 1; i > position; --i) { Model.Subfields.Remove(Subfields[i].Model); Subfields.RemoveAt(i); } }
/// <summary> /// Adds the subfield after. /// </summary> /// <param name="fieldViewModel">The field view model.</param> public void AddSubfieldAfter(IDataTriggerSourceFieldViewModel fieldViewModel) { var sourceField = fieldViewModel.GetSelectedField(); if (sourceField == null) return; var subfield = DataTriggerSourceFieldEdit.NewSourceField(); subfield.Level = Model.Subfields.Count > 0 ? Model.Subfields.Max(f => f.Level) + 1 : 1; Model.Subfields.Add(subfield); var vm = SourceFieldViewModelFactory.CreateExport().Value; vm.Initialize(subfield, this); Subfields.Add(vm); FieldList.BeginGetCrossReferenceSubfields( sourceField.DefinedIn, sourceField.SystemName, (sender, e) => { if (e.Error != null) return; vm.SetAvailableFields(e.Object); }); }