2015-03-12 9 views
5

Ich muss in meinen Xamarin Forms Staaten Picker erstellen. Ich verwende Xaml-Datei zum Erstellen von Ansichten.Xamarin Forms Picker Artikel Quellbindung in Xaml

Kann jemand mir helfen, Picker in XAML mit Artikel Quelle zu binden?

+1

http://stackoverflow.com/help/how-to-ask –

+0

Das letzte Mal habe ich geprüft es keine ItemSource Bindungseigenschaft für die Picker in XAML war. Das heißt, Sie sollten entweder die Bindung in Code oder über einen benutzerdefinierten BindablePicker machen (zB: https://forums.xamarin.com/discussion/30801/xamarin-forms-bindable-picker) – Wizche

+0

thecoshman - manchmal haben wir keine Ahnung wohin Beginnen Sie und kommen Sie hier um Rat/Proben –

Antwort

1

Sie können dies nicht in XAML tun, wie Sie here sehen können.

Sie müssen die Daten in den Code hinter, entweder mit ihrer regulären API oder etwas wie this laden.

Sie können Ihre Liste auch als JSON oder ein bevorzugtes Format serialisieren, deserialisieren und an die Picker übergeben.

2

Die XLabs ein hervorragendes Beispiel für eine bindbare Picker hat, dass ich in mehreren Projekten zu große verwendet haben beeinflussen:

https://github.com/XLabs/Xamarin-Forms-Labs

Dies ermöglicht Ihnen, die ‚Itemssource‘ Funktionalität des Listview zu replizieren.

0

Diese Funktionalität existierte noch nicht, wurde aber kürzlich dem regulären Xamarin.Forms Picker über die neuen Eigenschaften ItemsSource und SelectedItem hinzugefügt. Es befindet sich derzeit im Pre-Release-NuGet-Paket für version 2.3.4-pre1, sollte aber nach der Veröffentlichung in den stabilen Versionen 2.3.4+ erscheinen.

0

Wie JordanMazurke kommentierte, XLabs hat es. Hier ist ein Beispiel:

<ContentPage x:Class="XLabs.Samples.Pages.Controls.ExtendedPickerPage" 
     xmlns="http://xamarin.com/schemas/2014/forms" 
     xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
     xmlns:controls="clr-namespace:XLabs.Forms.Controls;assembly=XLabs.Forms" 
     Title="Picker"> 
<ContentPage.Content> 
    <StackLayout x:Name="myStackLayout"> 
     <Label Text="Xaml:" /> 
     <controls:ExtendedPicker x:Name="myPicker" 
           DisplayProperty="FirstName" 
           ItemsSource="{Binding MyDataList}" 
           SelectedItem="{Binding TheChosenOne}" /> 
    </StackLayout> 
</ContentPage.Content>