private void EditComponentHandler(object parameter) { if (SelectedComponent != null) { CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetInstrumentComponentsCompleted += (s, e) => { InstrumentComponent clone = new InstrumentComponent(); CommonUtils.CloneObject(clone, SelectedComponent, ""); clone.InstrumentComponentType = SelectedComponent.InstrumentComponentType;//not done by CloneObject method. IList<string> existingComponentNames = (from x in Components select x.Name).ToList(); AddEditInstrumentComponentDialog dialog = new AddEditInstrumentComponentDialog(SelectedComponent, existingComponentNames); dialog.Show(); //Select the component as user might have changed the component type //and this needs to reload the component type properties dialog.Closed += (s1, e1) => { if (dialog.DialogResult.HasValue && dialog.DialogResult.Value) { SelectedComponent = dialog.Component; Utils.OnCollectionChanged(EventAggregator, mInstrument, PROPERTYNAME, true); } else { SelectedComponent.Name = clone.Name; SelectedComponent.InstrumentComponentType = clone.InstrumentComponentType; SelectedComponent.Description = clone.Description; } RaisePropertyChanged("Components"); }; }; cmsWebServiceClient.GetInstrumentComponentsAsync(); } }
private void DisplayAddComponentDialog() { IList<string> existingComponentNames = (from x in Components select x.Name).ToList(); AddEditInstrumentComponentDialog dialog = new AddEditInstrumentComponentDialog(mInstrument.Id, existingComponentNames); dialog.Show(); dialog.Closed += (s1, e1) => { if (dialog.Component != null) { mInstrument.InstrumentComponents.Add(dialog.Component); RaiseChangeEvent(); OnCollectionChanged(); RaisePropertyChanged("Components"); } }; }