Skip to content

Picker

The picker is used to select from a list of choices. The Picker visual appearance is similar to an Entry but instead of using a keyboard, you choose from a predefined list of elements.

Define in XAML

 <Picker Title="Day" ItemsSource="{StaticResource DaysOfWeek}" />

The DaysOfWeek is a static resource array define in the XAML file as follows :

    <ContentPage.Resources>
        <ResourceDictionary>
            <x:Array x:Key="DaysOfWeek" Type="{x:Type x:String}">
                <x:String>Monday</x:String>
                <x:String>Tuesday</x:String>
                <x:String>Wednesday</x:String>
                <x:String>Thursday</x:String>
                <x:String>Friday</x:String>
                <x:String>Saturday</x:String>
                <x:String>Sunday</x:String>
            </x:Array>
        </ResourceDictionary>
    </ContentPage.Resources

We can also use a static member of the backing class as the source of the picker view as follows :

<Picker Title="Month" ItemsSource="{x:Static local:PickerPage.Months}" />

and in the backing code file :

    public partial class PickerPage : ContentPage
    {
        public static string[] Months =  {
            "Jan",
            "Feb",
            "Mar",
            "Apr",
            "May",
            "Jun",
            "Jul",
            "Aug",
            "Sept",
            "Oct",
            "Nov",
            "Dec"
        };
        public PickerPage()
        {
            InitializeComponent();
        }
    }

Notice we are using the XAML extension x:Static to use static resources.

Provide Picker Source in Code

We can altenatively proved the source of the Picker in code, as follows :

<Picker Title="Year" x:Name="pickerYear" />

And in the backing code file :

pickerYear.ItemsSource = new List<string> {
    "2000",
    "2001",
    "2002",
    "2003",
    "2004"
};

Define Picker in Code

We can also define and populate the Picker from code as follows:

var picker = new Picker()
{
    ItemsSource = new List<string> {
        "Jan",
        "Feb",
        "Mar"
    }
};