//обработчик выбора элемента дня ----- показывает заметки ---- private void nameButton_Clicked(object s, EventArgs e) { //если "открыто окно" для добавления заметок if (addNoteIsOpen) { selectedGrid.Children.RemoveAt(selectedGrid.Children.Count - 1); addNoteIsOpen = false; } //сохраняем изменения для прошлого выбранного элемента if (selectedGrid != null) { selectedItem.Notes.Clear(); int count = selectedGrid.Children.Count - 2; //название и кнопка "добавить" for (int j = 0; j < count; j++) { var noteView = (NoteView)(selectedGrid.Children[j + 1]); selectedItem.Notes.Add((noteView.Text, noteView.ValueOfSwitch)); } var btn = (Button)selectedGrid.Children[0]; var rowDefinition = selectedGrid.RowDefinitions[0]; selectedGrid.Children.Clear(); selectedGrid.Children.Add(btn, 0, 0); selectedGrid.RowDefinitions.Clear(); selectedGrid.RowDefinitions.Add(rowDefinition); } selectedItem = timeItems.FindItemByName(((Button)s).Text); //если выбран предыдущий элемент, то закрываем его if (selectedGrid == listOfGrid[selectedItem.Index]) { selectedGrid = null; return; } selectedGrid = listOfGrid[selectedItem.Index]; //добавляем все заметки для выбранного элемента дня int i = 1; foreach (var note in selectedItem.Notes) { selectedGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); var noteView = new NoteView { Text = note.Item1, ValueOfSwitch = note.Item2 }; noteView.Clicked += (_s, _e) => deleteNote_Clicked(noteView, (Button)s); selectedGrid.Children.Add(noteView, 0, i++); } //добавляем кнопку "добавить заметку" selectedGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); var addNoteButton = new Button { Text = "Добавить", FontSize = 10, BackgroundColor = Color.Transparent, HorizontalOptions = LayoutOptions.Center }; addNoteButton.Clicked += (_s, _e) => addNoteButton_Clicked(addNoteButton, ref i); selectedGrid.Children.Add(addNoteButton, 0, i++); }
/*/обработчик выбора элемента дня ----- показывает меню * private void nameButton_Pressed(object s, EventArgs e) * { * Task task = new Task(() => * { * int x = DateTime.Now.Second; * while (Math.Abs(x - DateTime.Now.Second) < 2) ; * if (!((Button)s).) * return; * var pressedItem = timeItems.FindItemByName(((Button)s).Text); * DisplayActionSheet(pressedItem.Name, "Отмена", "fds", "Удалить", "Изменить"); * }); * }/*/ //обработчик удаления заметки private void deleteNote_Clicked(NoteView noteView, Button button) { if (addNoteIsOpen) { selectedGrid.Children.RemoveAt(selectedGrid.Children.Count - 1); addNoteIsOpen = false; } selectedGrid.Children.RemoveAt(selectedGrid.Children.IndexOf(noteView)); nameButton_Clicked(button, new EventArgs()); nameButton_Clicked(button, new EventArgs()); }