private void EditStaffConfig_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { var listItem = sender as FrameworkElement; if (listItem != null) { var vm = DataContext as AirportConfigurationViewModel; var oldPassenger = listItem.DataContext as AirportCheckpointPassengerConfiguration; if (vm != null && oldPassenger != null) { var clonedItem = oldPassenger.DeepClone <AirportCheckpointPassengerConfiguration>(); foreach (var sc in clonedItem.StaffConfigurations) { sc.Qualification = vm.Qualifications.FirstOrDefault(x => x.QualificationId == sc.QualificationId); } var ctrl = new EditAirportStaffControl(clonedItem, vm.SelectedCheckpoint.PassengerConfigurations); ctrl.OnEditFinished += newPassenger => { vm.EditPassengerConfiguration(newPassenger, oldPassenger); }; GSPApplicationService.Current.AppState.ShowPopup(ctrl, listItem); } } }
private void AddCheckpointStaffBtn_OnClick(object sender, RoutedEventArgs e) { var vm = DataContext as AirportConfigurationViewModel; var ctrl = new EditAirportStaffControl(new AirportCheckpointPassengerConfiguration(), vm.SelectedCheckpoint.PassengerConfigurations); ctrl.OnEditFinished += passengerConfiguration => { //var vm = DataContext as AirportConfigurationViewModel; if (vm != null) { vm.AddPassengerConfiguration(passengerConfiguration); } }; GSPApplicationService.Current.AppState.ShowPopup(ctrl, AddCheckpointStaffBtn); }