У меня есть просмотр списка, и я хочу показать или скрыть метку в зависимости от значения логического свойства 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>