private void EditComponentHandler(object parameter) { if (SelectedComponent != null) { CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetElectricalEquipmentComponentsCompleted += (s, e) => { ElectricalEquipmentComponent clone = new ElectricalEquipmentComponent(); CommonUtils.CloneObject(clone, SelectedComponent, ""); clone.ElectricalEquipmentComponentType = SelectedComponent.ElectricalEquipmentComponentType;//not done by CloneObject method. IList<string> existingComponentNames = (from x in Components select x.Name).ToList(); AddEditElectricalEquipmentComponentDialog dialog = new AddEditElectricalEquipmentComponentDialog(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) { Utils.OnCollectionChanged(EventAggregator, mElectricalEquipment, PROPERTYNAME, true); } else { SelectedComponent.Name = clone.Name; SelectedComponent.ElectricalEquipmentComponentType = clone.ElectricalEquipmentComponentType; SelectedComponent.Description = clone.Description; } RaisePropertyChanged("Components"); }; }; cmsWebServiceClient.GetElectricalEquipmentComponentsAsync(); } }
private void AddButtonHandler(object parameter) { IList<string> existingComponentNames = (from x in Components select x.Name).ToList(); AddEditElectricalEquipmentComponentDialog dialog = new AddEditElectricalEquipmentComponentDialog(mElectricalEquipment.Id, existingComponentNames); dialog.Show(); dialog.Closed += (s1, e1) => { if (dialog.Component != null) { mElectricalEquipment.ElectricalEquipmentComponents.Add(dialog.Component); RaisePropertyChanged("Components"); RaiseChangeEvent(); OnCollectionChanged(); } }; }