gpt4 book ai didi

c# - 构建 Xamarin 页面时获取数据的最佳方式是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 12:03:24 24 4
gpt4 key购买 nike

我正在构建一个与 BLE 设备对话的 Xamarin 应用程序。目前我正在构建类似“文件浏览器”的东西;我有一个页面,其中包含可以从设备下载的 3 种“文件类型”的 ListView ;当点击一个项目时,我想创建一个新页面(使用 Navigation.PushAsync()),其中包含从设备获取的文件列表。我正在使用一个页面来实现它,该页面在其构造函数中创建并绑定(bind)到其 View 模型,但我无法在构造函数中调用异步方法来下载数据。

这是糟糕的设计还是有办法在创建 View 模型期间开始下载信息?

最佳答案

当您的数据 ID 开始下载时,您可以使用绑定(bind)到 YourViewModel 的 IsBusy 属性的事件指示器打开新页面。

然后您可以开始下载新任务,如下所示:

public class YourViewModel
{
private bool isBusy;
public bool IsBusy
{
get => isBusy;
set => SetProperty(isBusy, value);
}

public YourViewModel()
{
StartDownload();
}

private void StartDownload()
{
IsBusy = true;

Task.Run(ExceptionHandler(async() =>
{
// Your download starts here
// await it
// and when it came finished:
Device.BeginInvokeOnMainThread(() => IsBusy = false);
}));
}

private void ExceptionHandler(Action action)
{
try
{
action?.Invoke();
}
catch(Exception ex)
{
// Handle exceptions here
}
}
}

您可以通过来自 View 模型或类似事件的事件添加页面组件。

希望对你有帮助。

关于c# - 构建 Xamarin 页面时获取数据的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56101778/

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