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