【发布时间】:2019-06-06 23:24:11
【问题描述】:
我使用 James Montenagro 的 MVVMHelpers 模型开发了一个 Xamarin Forms 应用程序。我的一个页面是一个动态创建的表单,它是根据加载到应用程序中的表单的 XML 定义构建的。然后应用程序创建必要的布局和字段。
当需要验证表单时,我的应用会循环遍历页面上创建的各种控件,并根据表单定义验证输入以确保表单已正确完成。这一切都很好,并由“保存”按钮命令触发。问题是应用程序看起来没有响应需要几秒钟。
没问题,我想只是添加
Acr.Userdialogs.Instance.Loading("正在验证表单,请稍候")
在我进行验证以显示活动指示器之前。但是我已经尝试过并阅读了它,当然它不起作用,因为我的验证在命令处理程序中都是同步的,并且 UI 没有得到更新。
接下来我尝试使用
将我的验证函数移动到一个线程中等待Task.Run(() => ValidateForm());
但这也不起作用,因为线程需要访问视图中的各种 UI 控件,并且由于它没有创建它们而不允许这样做。现在我被困住了。如何在循环浏览 UI 元素以验证它们时显示繁忙指示器 - 将表单元素中的所有“答案”放入列表并单独验证它们没有意义,因为它是循环通过我假设的控件正在抓紧时间……
【问题讨论】:
标签: xamarin mvvm xamarin.forms