c# - 数据加载期间不显示 ProgressRing
问题描述
我有一个ProgressRing
需要在列表加载到DataGrid
. 当我运行该应用程序时,数据已加载,但未ProgressRing
显示。我究竟做错了什么?
XAML:
<Grid>
<ProgressRing x:Name="CarregamentoDeContas" />
<controls:DataGrid
x:Name="DataGridDeContas"
AutoGenerateColumns="True"
ItemsSource="{x:Bind Contas}" />
</Grid>
代码隐藏:
private List<Conta> Contas;
private void ObterListaDeContas()
{
try
{
CarregamentoDeContas.IsActive = true;
Contas = ListaDeContas.ObterContas();
}
finally
{
CarregamentoDeContas.IsActive = false;
}
}
public ContasPage()
{
this.InitializeComponent();
ObterListaDeContas();
}
解决方案
数据加载期间不显示 ProgressRing
请检查ObterListaDeContas
方法,它没有包含异步调用,这意味着
将直接将IsActive
属性设置为false。CarregamentoDeContas
如果您想显示进度环,您可以在ObterListaDeContas
方法中设置任务延迟或ObterContas()
作为异步方法并使用 await 方法调用它。
private async void ObterListaDeContas()
{
try
{
CarregamentoDeContas.IsActive = true;
//The progress will last for two seconds
await Task.Delay(2000);
}
finally
{
CarregamentoDeContas.IsActive = false;
}
}
推荐阅读
- python - Python 使用 lamda 函数错误缺少 1 个必需的位置参数:“事件”
- c# - 在 C#/.NET 中以编程方式查找正在使用某个 USB 设备(通过设备 ID)的进程
- javascript - 创建“自动复制到剪贴板”javascript
- api - ActiveCollab 集成选项(将客户添加到项目、SMS 到笔记等)
- artifact - 从 CLI 阅读 Jfrog Artifact 的 X 射线报告
- dataweave - 使用 IBM MQ“On New Message”连接器在 mulesoft 中读取 csv 文件
- javascript - 如何修复错误适当的加载器以在反应挂钩中处理此文件类型
- javascript - 在 React Native Expo 中创建用户时无法将记录添加到 Firebase
- continuous-integration - 规则中无法识别 GitLab CI 自定义变量
- ios - WidgetKit:.timer 文本样式将其扩展以填充宽度,而不是占用空间以适应包含的字符串