Xamarin Listview: привязка метки IsVisible исчезает при прокрутке - PullRequest
0 голосов
/ 03 октября 2019

У меня есть просмотр списка, и я хочу показать или скрыть метку в зависимости от значения логического свойства isShop.

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

пожалуйста, не могли бы вы мне помочь. Спасибо!

это ViewModel

private async Task LoadOrdersTimeSlot(OrdersByTimeSlotRequest request)
{
    IsBusy = true;

    UserDialogs.Instance.ShowLoading();

    try
    {
        var orders = await _timeSlotService.GetOrdersByTimeSlot(request);

        OrderResponse = orders;
    }
    catch (Exception ex)
    {
        UserDialogs.Instance.Alert($"{Resources.AppResources.RestServiceError} {ex.Message}");
        Crashes.TrackError(ex, new Dictionary<string, string>{
            { "Method", "LoadOrdersTimeSlot" }
        });
        if (OrderResponse == null)
            await NavigationService.NavigateBackAsync();
    }
    finally
    {
        try
        {

            if (OrderResponse != null)
            {
                foreach (var pedido in OrderResponse.pedidos)
                {
                    if (pedido.estadoEntrega == 5)
                    {
                        pedido.confirmado = true;
                    }
                    else
                    {
                        pedido.confirmado = false;
                    }

                    pedido.OnPropertyChanged("color");
                }
            }
        }
        catch (Exception ex)
        {
            UserDialogs.Instance.Alert($"{Resources.AppResources.RestServiceError} {ex.Message}");
            Crashes.TrackError(ex, new Dictionary<string, string>{
            { "Method", "LoadOrdersTimeSlot" }
        });
        }

        UserDialogs.Instance.HideLoading();
        IsBusy = false;
    }
}

это модель

[NotMapped]
public bool isShop
{
  get
     {
        return (numeroPedido == 0);
     }
}

    public event PropertyChangedEventHandler PropertyChanged;

    public virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

    }

этоэто вид

   <ListView x:Name="lvTimeOrders" 
    BackgroundColor="White"
    ItemsSource="{Binding OrderResponse.orders}"
    SelectedItem="{Binding SelectedOrder}"
    SeparatorVisibility="Default"
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <Grid Padding="10" BackgroundColor="White">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="AUTO"></RowDefinition>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"></ColumnDefinition>
                    </Grid.ColumnDefinitions>
                    <StackLayout Grid.Column="0" Orientation="Vertical" Margin="20,0,0,0">
                            <Label Text="{Binding orderName}"/>
                            <Label Text="{Binding orderNameAux"  IsVisible="{Binding isShop}" />
                        </StackLayout>
                    </StackLayout>
                </Grid>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

1 Ответ

0 голосов
/ 08 октября 2019

Я решил проблему с обновлением Xamarin.Forms с 4.0.0.482894 до 4.2.0.848062

Спасибо за ваши ответы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...