/// <summary> /// Creates a property path view-model. /// </summary> /// <param name="model"> /// The model. /// </param> /// <param name="process"> /// The process. /// </param> /// <returns> /// The <see cref="IPropertyPathViewModel"/>. /// </returns> public IPropertyPathViewModel CreateViewModel(PropertyPathEdit model, ProcessEdit process) { var viewModel = MefFactory.CreateExport().Value; viewModel.Initialize(model, process); return viewModel; }
/// <summary> /// Initializes the specified model. /// </summary> /// <param name="model">The model.</param> /// <param name="process">The process.</param> public void Initialize(PropertyPathEdit model, ProcessEdit process) { Model = model; Process = process; _fieldName = Model.FieldName; var sortedFields = Model.Subfields.OrderBy(f => f.Index).ToArray(); foreach (var field in sortedFields) { var vm = FieldViewModelFactory.CreateExport().Value; vm.Initialize(field, this); Subfields.Add(vm); } for (var i = 0; i < Subfields.Count - 1; ++i) { Subfields[i].Subfield = Subfields[i + 1]; } _hasSubfield = Subfields.Count > 0; UpdateAvailableFields(); }