xamarin 为什么此刷新命令会使应用程序崩溃?

lpwwtiir  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(131)

以下是与刷新命令关联的所有行
这是XAML代码中的主绑定

RefreshCommand="{Binding RefreshCommand}"

这是视图模型

async Task Refresh()
    {
        IsBusy = true;

        await Task.Delay(2000);

        Note.Clear();

        var notes = await NoteService.GetNote();

        Note.AddRange(notes);

        IsBusy = false;

    }

GetNote方法如下所示

public static async Task<IEnumerable<Note>> GetNote()
    {
        await Init();

        var note = await db.Table<Note>().ToListAsync();
        return note;
    }

还有其他方法包括刷新命令,并且它们不会崩溃时,刷新部分被排除,因此我相信这个问题是有关这个刷新方法。任何帮助是感激!

kh212irz

kh212irz1#

Note是否绑定到UI元素(如ListView)?
如果是这样,您可能必须确保与UI相关的操作(如Note.AddRange(notes);)在主UI线程中执行:

Device.BeginInvokeOnMainThread (() => {
    var notes = await NoteService.GetNote();
    Note.AddRange(notes);
});

更多详细信息,请访问:Why use Device.BeginInvokeOnMainThread() in a Xamarin application?

相关问题