private void Page_Loaded(object sender, RoutedEventArgs e) { Task.Factory.StartNew(() => { try { Staff staff = _newStaff = new Staff(); _newPhone = new PhoneStaff(); _newEmail = new EmailStaff(); _phoneList = new List <PhoneStaff>(); _emailList = new List <EmailStaff>(); Deal[] dealArr = null; TaskBD[] taskBDArr = null; if (!_isNewRecord) { staff = _databasenEtities.Staff.Single(a => a.ID == _ID_Row); _phoneList.AddRange(_databasenEtities.PhoneStaff.Where(a => a.ID_Staff == _ID_Row).ToArray()); _emailList.AddRange(_databasenEtities.EmailStaff.Where(a => a.ID_Staff == _ID_Row).ToArray()); dealArr = _databasenEtities.Deal.Where(a => a.ID_Staff == staff.ID).ToArray(); taskBDArr = _databasenEtities.TaskBD.Where(a => a.ID_Staff == staff.ID).ToArray(); } PostPeople[] postPeopleArr = _databasenEtities.PostPeople.OrderBy(a => a.Name).ToArray(); Country[] countryArr = _databasenEtities.Country.OrderBy(a => a.Name).ToArray(); TypePhone[] typePhoneArr = _databasenEtities.TypePhone.OrderBy(a => a.Name).ToArray(); TypeEmail[] typeEmailArr = _databasenEtities.TypeEmail.OrderBy(a => a.Name).ToArray(); Dispatcher.Invoke(() => { DataContext = staff; cbPostStaff.ItemsSource = postPeopleArr; cbCountry.ItemsSource = countryArr; cbTypePhone.ItemsSource = dgcbTypePhone.ItemsSource = typePhoneArr; cbTypeEmail.ItemsSource = dgcbTypeEmail.ItemsSource = typeEmailArr; gNewPhone.DataContext = _newPhone; gNewEmail.DataContext = _newEmail; dgPhone.ItemsSource = _phoneList.ToArray(); dgEmail.ItemsSource = _emailList.ToArray(); if (!_isNewRecord) { dgDeal.ItemsSource = dealArr; dgTask.ItemsSource = taskBDArr; } mainGrid.IsEnabled = true; }); } catch (Exception ex) { MessageService.MetroMessageDialogError(ex.Message); } }); }
// Добавление нового телефона private void btnAddNewPhone_Click(object sender, RoutedEventArgs e) { if (Regex.IsMatch(_newPhone.Phone, @"^\+[0-9]{1,3}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{3}$", RegexOptions.IgnoreCase)) { _phoneList.Add(_newPhone); gNewPhone.DataContext = _newPhone = new PhoneStaff(); dgPhone.ItemsSource = _phoneList.ToArray(); } else { MessageService.MetroMessageDialogError("Вы ввели неверный номер телефона!\nРекомендуемый формат: +123-45-67-89-011"); } }
// Удаление телефона private async void dgPhone_KeyUp(object sender, KeyEventArgs e) { if (e.Key == Key.Delete && dgPhone.SelectedItem != null) { MessageDialogResult dialogResult = await MessageService.MetroMessageDialogQuestion("Подтверждение удаления", "Вы действительно хотите удалить выбранный элемент?"); if (dialogResult == MessageDialogResult.Affirmative) { PhoneStaff phoneStaff = dgPhone.SelectedItem as PhoneStaff; if (phoneStaff.ID != 0) { _delPhoneList.Add(phoneStaff); } _phoneList.Remove(phoneStaff); dgPhone.ItemsSource = _phoneList.ToArray(); } } }