Xamarin: Wartedialog Daten laden
Lädt eine App Daten aus dem Netz, soll ein Wartedialog den Ladevorgang anzeigen. Umsetzung über ein IsLoaded-Flag im ViewModel und ein an dieses Flag gebundenes UI.
ViewModel vorbereiten
public async void LoadData(int countryId)
{
IsLoaded = false;
MyCustomerList = await DataManager.GetCustomersByLand(countryId);
IsLoaded = true;
}
(MyCustomerList und IsLoaded sind Properties mit RaisePropertyChanged.)
Xamarin.Android
Ein ProgressBar und der Content werden in einem FrameLayout zusammengefasst; die Sichtbarkeit steuert:
private void SetActivContent(bool isloaded)
{
CustomersListView.Visibility = isloaded ? ViewStates.Visible : ViewStates.Gone;
LoadLayout.Visibility = isloaded ? ViewStates.Gone : ViewStates.Visible;
}
Bindings in OnStart erzeugen und in OnStop lösen (siehe Xamarin MvvmLight-Binding funktioniert nicht).

Xamarin.iOS
Gleiche Vorgehensweise; als Control dient der UIActivityIndicatorView:
private void SetActivContent()
{
if (!ViewModel.IsLoaded)
{
ActivityIndicator1.Hidden = false;
ActivityIndicator1.StartAnimating();
CustomerTableView.Hidden = true;
}
else
{
ActivityIndicator1.Hidden = true;
CustomerTableView.Hidden = false;
}
}

Unterstützung von m.a.x. it
Bei plattformübergreifender App- und Softwareentwicklung unterstützt Sie m.a.x. it mit individueller Softwareentwicklung.
Über m.a.x. it Die m.a.x. Informationstechnologie AG ist seit über 30 Jahren IT-Partner mittelständischer und großer Unternehmen in München und bietet maßgeschneiderte Lösungen und Services in den Bereichen Cloud, Cybersecurity, Netzwerk, Windows, Linux und Softwareentwicklung. Sie haben eine Frage zu diesem Artikel oder brauchen Unterstützung?
