Xaml 开始时将堆栈布局可见性设置为false

Xaml 开始时将堆栈布局可见性设置为false,xaml,xamarin,xamarin.forms,Xaml,Xamarin,Xamarin.forms,我被一个问题困住了。 我有一个堆栈布局,应该根据从api请求加载的数据显示 我已经绑定了api响应可见它工作正常,但问题是加载需要几分钟的时间问题是一旦页面打开,堆栈布局保持可见一段时间,然后根据响应更改可见性 这是我的XAML <StackLayout x:Name="FailureResult" IsVisible="{Binding PlaceDetails.isErrorScreen,Converter={StaticResource BoolConverter}}">

我被一个问题困住了。 我有一个堆栈布局,应该根据从api请求加载的数据显示 我已经绑定了api响应可见它工作正常,但问题是加载需要几分钟的时间问题是一旦页面打开,堆栈布局保持可见一段时间,然后根据响应更改可见性

这是我的XAML

<StackLayout x:Name="FailureResult" IsVisible="{Binding PlaceDetails.isErrorScreen,Converter={StaticResource BoolConverter}}">
       <Label Text="{StaticResource GooglePlaceNotFound}" />
</StackLayout>

请帮我解决上述情况。我希望堆栈布局可见性最初为false,然后根据响应更改可见性
提前感谢

使用单独的属性查看StackLayout

public bool StackLayoutIsVisible => PlaceDetails != null;
然后,一旦api调用完成,在属性更改的方法上引发

PlaceDetails = response;
OnPropertyChanged(nameof(StackLayoutIsVisible));

我通过绑定一个属性来实现它,直到api请求完成。绑定属性最初设置为false。api请求完成后,将根据api结果更改绑定属性

xaml


您最好在代码中执行此操作,而不是绑定。为什么不在获取所有数据之前使用加载屏幕?否则按@Jason说的做,从StackLayout开始first@ajit如果要使用绑定,请创建一个bool属性为false,然后通过api获取所有数据,将此bool属性更改为true,不要忘记实现INotifyPropertyChanged接口以通知已更改。@CherryBu MSFT感谢我通过bindind to property完成了此操作,该属性最初设置为false,然后在api调用完成后为属性赋值completed@ajit看来你的问题已经解决了,请发一条回复,并将您的回复标记为答案,这可能会对其他面临同样问题的社区成员有所帮助,谢谢。谢谢,我通过绑定一个属性来实现它,直到api请求完成
<StackLayout x:Name="FailureResult" IsVisible="{Binding ErrorVisibility }">
    <Label Text="{StaticResource GooglePlaceNotFound}" />
</StackLayout>
 private bool _errorVisibility = false;
        public bool ErrorVisibility
        {
            get
            {
                return this._errorVisibility;
            }
            set
            {
                this._errorVisibility = value;
                this.NotifyPropertyChanged();
            }
        }

APImethod()
{
ErrorVisibility = PlaceDetails.isErrorScreen;
}