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