Удаление элемента из списка в формах Xamarin - PullRequest
0 голосов
/ 04 октября 2018

У меня проблема в том, что когда я удаляю строку из своего списка в формах Xamarin, я настраиваю ее так, что, когда пользователь хочет что-то удалить, у него появляется всплывающее окно с вопросом, действительно ли он хочет удалить.Если они нажимают «да», он удаляет элемент из списка ... (не проблема), но если пользователь говорит «нет», он все же удаляет элемент (умеренно), затем вы обновляете страницу, и она возвращается.Мне интересно, что я не так в своем коде.поэтому он не удалит элемент, если вы не нажмете да ..

async void OnDeleteBook(object sender, EventArgs e)
{
    var book = (sender as MenuItem).CommandParameter as BooksIWant;

    if (await DisplayAlert("Warning", $"Are you sure you want to delete {book.Author} {book.BookTitle}?", "Yes", "No"))
        await _connection.DeleteAsync(book);
    _booksIWant.Remove(book);
}

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Вы должны кодировать, как показано ниже

async void OnDeleteBook(object sender, EventArgs e){
var book = (sender as MenuItem).CommandParameter as BooksIWant;

if (await DisplayAlert("Warning", $"Are you sure you want to delete {book.Author} {book.BookTitle}?", "Yes", "No")){
    await _connection.DeleteAsync(book);
_booksIWant.Remove(book);}}

Удалить и удалить вызов метода должен быть внутри цикла if

0 голосов
/ 04 октября 2018

Вам необходимо использовать {} для создания блока операторов.Без них выполняется только оператор сразу после IF;

if (await DisplayAlert("Warning", $"Are you sure you want to delete {book.Author} {book.BookTitle}?", "Yes", "No"))
{
  await _connection.DeleteAsync(book);
  _booksIWant.Remove(book);
}

Это базовый C #, а не что-то конкретное для Xamarin.

...