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();
                    }
                };
        }