コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        /// <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);
                    });
        }