Quelqu'un peut-il me dire ce qui ne va pas avec mon code? J'essaie d'obtenir l'actualisation pour fonctionner sur ma page xaml et cela ne fonctionnera pas pour Android ou iPhone. Je pense que c'est peut-être comme ça que ma liste de lecture est présentée. Quelqu'un peut-il me dire s'il y a quelque chose dans le ListView qui pourrait empêcher la commande Refresh de se déclencher? Voici mon code XAML pour le ListViewTirer pour rafraîchir ne fonctionne pas dans Xamarin Forms ListView
<ContentPage.Content>
<ListView x:Name="TDRView" HasUnevenRows="True" ItemTapped="OnItemTapped" IsPullToRefreshEnabled="True" RefreshCommand="{Binding RefreshCommand}" IsRefreshing="{Binding IsRefreshing}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<Grid x:Name ="gridTDR">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50*" />
<ColumnDefinition Width="25*" />
<ColumnDefinition Width="25*" />
</Grid.ColumnDefinitions>
<StackLayout HorizontalOptions="StartAndExpand" VerticalOptions="CenterAndExpand" Grid.Column="0" Grid.Row="0">
<Label x:Name="lblTDRID" Text="{Binding TDRID}" IsVisible="false" />
<Label x:Name="lblCustName" Text="{Binding CustomerName}" FontSize="Medium" TextColor="Black" />
</StackLayout>
<Button Image="iconApprove.png" Clicked="OnApproveButtonClicked" Grid.Column="1" Grid.Row="0" VerticalOptions="Center" BackgroundColor="Transparent" />
<Button Image="iconReject.png" Clicked="OnRejectButtonClicked" Grid.Column="2" Grid.Row="0" VerticalOptions="Center" BackgroundColor="Transparent" />
</Grid>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage.Content>
Et voici les méthodes dans le code derrière ...
using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Input;
using Xamarin.Forms;
namespace AppNameSpace
{
public partial class MainPage : ContentPage
{
ObservableCollection<TDR> collection = new ObservableCollection<TDR>();
private bool _isRefreshing = false;
public bool IsRefreshing
{
get { return _isRefreshing; }
set
{
_isRefreshing = value;
OnPropertyChanged(nameof(IsRefreshing));
}
}
public ICommand RefreshCommand
{
get
{
return new Command(async() =>
{
IsRefreshing = true;
await Service.GetPendingTDRs();
IsRefreshing = false;
});
}
}
public MainPage()
{
InitializeComponent();
TDRView.ItemsSource = collection;
GetTDRs();
}
}
}
Merci!
Avez-vous réellement utilisé le débogueur pour vérifier si le cmd de rafraîchissement est en train de se déclencher ou non? – Jason
Oui, j'ai débogué et défini des points d'arrêt et ça ne va pas dire – Stunshaw
Quand vous avez dit "ça ne marche pas" vous entendiez dans iOS par exemple en tirant la liste l'indicateur apparaît et il commence à tourner mais ça continue comme ça et la liste n'est jamais rafraichie ? pourriez-vous également mettre à jour votre message en montrant votre code complet derrière? – apineda