установив Stack Layout Visibility в false при запуске - PullRequest
0 голосов
/ 19 марта 2020

Я застрял с проблемой. У меня есть макет стека, который должен отображаться в соответствии с данными, загруженными из запроса API. Я привязал isVisible к API. Ответ работает хорошо, но проблема в том, что загрузка занимает минутное время. Проблема заключается в том, что после открытия страницы макет стека остается видимым. немного времени, а затем видимость меняется в соответствии с ответом

вот мой XAML

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

, пожалуйста, помогите мне в вышеуказанной ситуации. Я хочу, чтобы видимость макета стека изначально была ложной, а затем, основываясь на ответе, изменила видимость Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

Я добился этого, связавшись со свойством, пока запрос API не будет выполнен. Связанное свойство изначально установлено как ложное. Как только запрос API завершен, свойство привязки изменяется в соответствии с результатом API.

xaml

<StackLayout x:Name="FailureResult" IsVisible="{Binding ErrorVisibility }">
    <Label Text="{StaticResource GooglePlaceNotFound}" />
</StackLayout>

ViewModel

 private bool _errorVisibility = false;
        public bool ErrorVisibility
        {
            get
            {
                return this._errorVisibility;
            }
            set
            {
                this._errorVisibility = value;
                this.NotifyPropertyChanged();
            }
        }

APImethod()
{
ErrorVisibility = PlaceDetails.isErrorScreen;
}
0 голосов
/ 19 марта 2020

Используйте отдельное свойство для видимости StackLayout.

public bool StackLayoutIsVisible => PlaceDetails != null;

Затем, как только вызов API будет завершен, вызовите метод on свойству измененный.

PlaceDetails = response;
OnPropertyChanged(nameof(StackLayoutIsVisible));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...