//изменение поля с выбором факультета async void PickerFaculty_SelectedIndexChanged(object sender, EventArgs e) { Picker pic = (Picker)sender; selectedFaculty = pic.SelectedItem.ToString(); //сохранение факультета //сохранение данных, если вдруг произойдет ошибка, //тогда можно будет сделать повторный запрос с этими данными this.sender = sender; this.e = e; againButtonClickedFor = PickerFaculty_SelectedIndexChanged; //Если выбран студент if (!isTeacher) { List <string> groups = new List <string>(); //Ожидается выполнение асинхронного метода, так как данные уже нужны groups = await LoadGroupsAsync(); if (groups.Count == 0) { return; } HideActivityIndicator(); //скрыть анимацию загрузки headerForPicker = new Label { Text = "Выберите группу:", TextColor = Color.FromRgb(38, 38, 38), Margin = new Thickness(10, 0, 0, 0), FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label)) }; picker = new Picker { Title = "" }; foreach (var item in groups) { picker.Items.Add(item); } picker.SelectedIndexChanged += PickerGroup_SelectedIndexChanged; } //Если выбран преподаватель else { List <string> teachers = new List <string>(); //Ожидается выполнение асинхронного метода, так как данные уже нужны teachers = await LoadTeachersAsync(); if (teachers.Count == 0) { return; } HideActivityIndicator(); //скрыть анимацию загрузки headerForPicker = new Label { Text = "Выберите преподавателя:", TextColor = Color.FromRgb(38, 38, 38), Margin = new Thickness(10, 0, 0, 0), FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label)) }; picker = new Picker { Title = "" }; foreach (var item in teachers) { picker.Items.Add(item); } picker.SelectedIndexChanged += PickerTeacher_SelectedIndexChanged; } selectGroupStackLoyaout.Children.Clear(); selectSubgroupStackLoyaout.Children.Clear(); selectGroupStackLoyaout.Children.Add(headerForPicker); selectGroupStackLoyaout.Children.Add(picker); }
//изменение поля с выбором типа пользователя async void PickerUserType_SelectedIndexChanged(object sender, EventArgs e) { List <string> faculties = new List <string>(); //сохранение данных, если вдруг произойдет ошибка, //тогда можно будет сделать повторный запрос с этими данными this.sender = sender; this.e = e; againButtonClickedFor = PickerUserType_SelectedIndexChanged; //загрузка факультетов с сервера //Ожидается выполнение асинхронного метода, так как данные уже нужны faculties = await LoadFacultiesAsync(); if (faculties.Count == 0) { return; } HideActivityIndicator(); //скрыть анимацию загрузки selectedGroupName = ""; //обнуляем переменные хранения значений selectedGroupId = ""; //обнуляем переменные хранения значений selectedTeacher = ""; selectedSubgroup = ""; Picker workPicker = (Picker)sender; if (workPicker.SelectedIndex == 0) //Если выбран студент { isTeacher = false; } else { isTeacher = true; } headerForPicker = new Label { Text = "Выберите факультет:", TextColor = Color.FromRgb(38, 38, 38), Margin = new Thickness(10, 0, 0, 0), FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label)) }; picker = new Picker { Title = "" }; foreach (var item in faculties) { picker.Items.Add(item); } picker.SelectedIndexChanged += PickerFaculty_SelectedIndexChanged; //Отчистка полей, если они, вдруг, заполнены selectFacultyStackLoyaout.Children.Clear(); selectGroupStackLoyaout.Children.Clear(); selectSubgroupStackLoyaout.Children.Clear(); selectFacultyStackLoyaout.Children.Add(headerForPicker); selectFacultyStackLoyaout.Children.Add(picker); }