gpt4 book ai didi

xamarin - DisplayAlert 导致 Xamarin 应用崩溃

转载 作者:行者123 更新时间:2023-12-04 14:19:32 25 4
gpt4 key购买 nike

我正在使用显示警报来进行简单的是或否对话,但它卡住了我的 UI,我不知道为什么。

private  async void BtnDeleteStockTake_Clicked(object sender, EventArgs e)
{

var selectedItem = gridItems.SelectedItem as StockTakeTransArgsSage;
var action = await DisplayAlert("First 1", "Are you sure you wish to delete Stock Take", "Yes", "No");
if (action)
{
StockTakeTransArgsSage _item = new StockTakeTransArgsSage();
_item =database.GetSingleStockTake(selectedItem.StockTakeId).Result;
_item.Quantity = decimal.Parse(txtQty.Text);

int updated = await database.DeleteStockTake(_item);
await DisplayAlert("Second 1", "Stock Take Deleted", "OK");
await RebindData();
}
}

奇怪的事情,以及第一个的显示警报,不要忽略

这会导致 UI 因 fatal error 而崩溃,但是如果我在没有显示警报的情况下正常单步执行我的代码,它会显示警报但随后卡住。

我的删除股票功能

public async Task<int> DeleteStockTake(StockTakeTransArgsSage args)
{
return await database.DeleteAsync(args);


}

我的获取单函数。

public async Task<StockTakeTransArgsSage> GetSingleStockTake(int ID)
{
StockTakeTransArgsSage _stocktake = new StockTakeTransArgsSage();
_stocktake = await database.Table<StockTakeTransArgsSage>().Where(w => w.StockTakeId == ID).FirstOrDefaultAsync();
return _stocktake;

}

最佳答案

从您所描述的行为(以及查看您的代码)来看,很可能是因为显示警报未在 UI 线程上运行,这导致应用等待您关闭此警报框在能够做任何事情之前。所以你的应用程序不会崩溃或卡住,它只是在不同的线程上启动警报。所以将其更改为以下内容:

Device.BeginInvokeOnMainThread(() =>
{
DisplayAlert("Second 1", "Stock Take Deleted", "OK");
});

让我知道这是否有意义。

关于xamarin - DisplayAlert 导致 Xamarin 应用崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56410329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com