Xamarin Realm DB删除所有记录

问题描述

我有一个很短的问题,我有一个使用Xamarin构建的项目。我在这个项目中使用领域数据库。我想做的就是每当我按下一个按钮时就删除领域db中的所有数据。我可以在列表视图中选中该项,但是我想用一个按钮删除所有数据。

在此先感谢您的帮助。 Stackoverflow给了我很多启发。

解决方法

我在此项目中使用领域数据库。我想做的就是每当我按下一个按钮时就删除领域db中的所有数据。我可以在列表视图中选中该项,但是我想用一个按钮删除所有数据。

如果要删除所有Realm Db记录,请查看以下代码。

我的模特,

public class Student : RealmObject
{
    [PrimaryKey]
    public int StudentID { get; set; }
    public string StudentName { get; set; }
}

主页

 <StackLayout>
        <ListView x:Name="listStudent">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout>
                            <Label Text="{Binding StudentName}" />
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

        <Button
            x:Name="Addbtn"
            Clicked="Addbtn_Clicked"
            Text="add data" />
        <Button
            x:Name="deletebtn"
            Clicked="deletebtn_Clicked"
            Text="delete all data" />
    </StackLayout>

public partial class Page30 : ContentPage
{
    
    public Page30()
    {
        InitializeComponent();
       
    }

    private void Addbtn_Clicked(object sender,EventArgs e)
    {
        var realmDB = Realm.GetInstance();

        for (int i = 0; i < 20; i++)
        {
            Student item = new Student()
            {
                StudentID = i,StudentName = "cherry " + i
            };
            realmDB.Write(() =>
            {
                realmDB.Add(item);
            });

        }

        List<Student> students = realmDB.All<Student>().ToList();
        listStudent.ItemsSource = students;
       
    }

    private void deletebtn_Clicked(object sender,EventArgs e)
    {
        var realmDB = Realm.GetInstance();
        
        realmDB.Write(() =>
        {
            realmDB.RemoveAll();
        });
        List<Student> students = realmDB.All<Student>().ToList();
        listStudent.ItemsSource = students;
    }
}