Xamarin Forms Picker SelectedItem Binden
Die Xamarin Forms doc https://developer.xamarin.com/api/property/Xamarin.Forms.Picker.SelectedItem/ sagt, es ist eine öffentliche Eigenschaft SelectedItem für Picker. Allerdings bekomme ich eine Fehlermeldung, wenn ich versuche, Sie zu binden. Die Farbauswahl ist nicht sehr nützlich, wenn Sie manuell behandeln Sie die SelectedIndex-Eigenschaft.
Tony
- Welche version von Xamarin.Formen Sie mit? Bindbare picker vorhanden ist, in 2.3.4 nur
- Stellen Sie sicher, dass der Typ der VM-Eigenschaft verwendet, um binden zu
SelectedItem
ist der gleiche wie der Typ inItemsSource
Sammlung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dieses feature relativ einfach, auch mit älteren Versionen von Formen vor 2.3.4 unterstützt es out of the box. Einfach erstellen Sie eine benutzerdefinierte Verhalten binden Sie die picker-Elemente. Sie implementieren Ihre eigene version oder verwenden Sie eine vorhandene Bibliothek, wie die Xamarin University Infrastructure Library ist verfügbar als Quelle und als Nuget
Detaillierte Dokumentation zeigt, wie es zu benutzen:
Den Ansatz, das Verhalten ist, um eine bindbare Eigenschaft (die Artikel) und eine observable-collection. Wenn Sie, dass änderungen im Verhalten von updates, die Elemente des picker.
Keine Notwendigkeit, manuell behandeln Sie die SelectedIndex-Eigenschaft. Sie können die Pflücker die SelectedItem-Eigenschaft. Nur stellen Sie sicher, dass Ihre Typen sind die gleichen. Zum Beispiel, wenn Ihre ItemsSource gebunden ist, um eine Eigenschaft:
Ihre SelectedItem etwas wie:
Stellen Sie sicher, dass die SelectedBookTitle Wert auf einen Titel anzeigt, wenn die Seite zum ersten mal gezeigt.
Vergessen Sie nicht, setzen Sie Mode auf "TwoWay" auf die SelectedItem-Bindung.
zum Beispiel:
Dadurch wird sichergestellt, der Titel wird angezeigt, wenn die Seite zum ersten mal angezeigt wird,
und hält den Wert von SelectedBookTitle gleich auf die Seite und codebehind/viewmodel.
Keine Notwendigkeit zu verwenden Verhaltensweisen in diesem Beispiel.