Xamarin MvvmLight-Binding funktioniert nicht

Aus maxTechCorner
HinweisXamarin hat am 1. Mai 2024 das Support-Ende erreicht; Nachfolger ist .NET MAUI. Dieser Artikel bleibt als Referenz erhalten – für neue Projekte gilt .NET MAUI.

Symptom

Das MVVMLight-Binding in einer Xamarin-App (Android/iOS) funktioniert nicht zuverlässig: Daten werden nicht oder verspätet in den Controls angezeigt.

Ursache und Lösung

1. Bindings beim Verlassen der Maske lösen – sonst bleiben sie am ViewModel hängen:

if (_meinBinding != null)
{
    _meinBinding.Detach();
    _meinBinding = null;
}

2. Lifecycle beachten: OnDestroy (Android) wird nur beim Zurück-Navigieren aufgerufen, nicht beim Öffnen einer weiteren Activity – dadurch bleibt das Binding hängen und kollidiert beim erneuten Navigieren.

Bewährter Workaround:

  • Xamarin.Android: Binding in OnStart erzeugen und in OnStop lösen (detach).
  • Xamarin.iOS: Binding in ViewWillAppear erzeugen und in ViewDidDisappear lösen.

Unterstützung von m.a.x. it

Bei plattformübergreifender App- und Software­entwicklung 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? Kontakt aufnehmen