private void Edit(CoefficientDisplayModel coefficientDisplayModel) { CoefficientInfoViewModel viewModel = new CoefficientInfoViewModel(coefficientDisplayModel); CoefficientInfoControl control = new CoefficientInfoControl(viewModel); Window window = WindowFactory.CreateByContentsSize(control); viewModel.CoefficientEdited += (s, e) => { CoefficientEditModel coefficientEditModel = e.Coefficient; CoefficientEditDTO coefficientEditDTO = Mapper.Map <CoefficientEditModel, CoefficientEditDTO>(coefficientEditModel); using (ICoefficientService service = factory.CreateCoefficientService()) { ServiceMessage serviceMessage = service.Update(coefficientEditDTO); RaiseReceivedMessageEvent(serviceMessage); if (serviceMessage.IsSuccessful) { window.Close(); Notify(); } } }; window.Show(); }