首页 > 解决方案 > 数据加载期间不显示 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();
    }

标签: c#uwpdatagridwindows-community-toolkit

解决方案


数据加载期间不显示 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;
    }
}

推荐阅读