/// <summary> /// Initializes the specified model. /// </summary> /// <param name="model">The model.</param> /// <param name="processEdit">The process edit.</param> /// <param name="fieldEdit">The field edit.</param> public void Init(ChecklistSettingsStepEdit model, ProcessEdit processEdit, FieldEdit fieldEdit) { StepModel = model; ProcessEdit = processEdit; FieldEdit = fieldEdit; FilterGuid = model.FilterGuid ?? Guid.Empty; FilterDefinition = model.FilterDefinition; var weakListener = new WeakEventListener<ChecklistFilterViewModel, ChecklistSettingsStepEdit, PropertyChangedEventArgs>(this, model); model.PropertyChanged += weakListener.OnEvent; weakListener.OnEventAction += OnReqStepPropertyChanged; weakListener.OnDetachAction += Static; LoadProcessInfo(model); }
/// <summary> /// Loads the process information. /// </summary> /// <param name="step">The step.</param> private void LoadProcessInfo(ChecklistSettingsStepEdit step) { IsProcessSelected = false; if (step == null) { FilterDefinition = null; return; } if (string.IsNullOrWhiteSpace(step.AnswerProcessSystemName)) { FilterDefinition = null; return; } IsProcessSelected = true; PublishedProcessWithFiltersInfo.BeginGetInfo(step.AnswerProcessSystemName, (s, e) => { if (e.Error == null && !string.IsNullOrEmpty(e.Object.SystemName)) { SetupFilters(e.Object); } }); }
private static void Static(WeakEventListener<ChecklistFilterViewModel, ChecklistSettingsStepEdit, PropertyChangedEventArgs> listener, ChecklistSettingsStepEdit source) { source.PropertyChanged -= listener.OnEvent; }