从Xamarin表单的列表中删除项目

时间:2018-10-04 01:28:17

标签: xaml xamarin.forms android-sqlite xamarin.forms.listview

我遇到的问题是,当我从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 :(得分:1)

您需要使用jdbc-hikari创建一个语句块。没有它们,仅执行{}之后的语句;

IF

这是基本的C#,不是Xamarin特有的。

答案 1 :(得分:1)

您应该像下面这样编码

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循环内