Выпадающий список Picker

Последнее обновление: 10.01.2021

Визуально Picker представляет собой обычное текстовое поле, по нажатию на которое открывается список для выбора, что-то наподобие выпадающего списка:

public partial class MainPage : ContentPage
{
    Label header;
    Picker picker;
    public MainPage()
    {
        header = new Label
        {
            Text = "Выберите язык",
            FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Label))
        };

        picker = new Picker 
		{
			Title = "Язык"
        };
        picker.Items.Add("C#");
        picker.Items.Add("JavaScript");
        picker.Items.Add("Java");
        picker.Items.Add("PHP");

        picker.SelectedIndexChanged += picker_SelectedIndexChanged;

        this.Content = new StackLayout { Children = { header, picker } };
    }

    void picker_SelectedIndexChanged(object sender, EventArgs e)
    {
        header.Text = "Вы выбрали: " + picker.Items[picker.SelectedIndex];
    }
}

Picker содержит список для выбора, а отследить выбранный элемент мы можем с помощью обработчик события SelectedIndexChanged.

Picker in Xamarin

Аналог в xaml:

<StackLayout>
    <Label x:Name="header" Text="Языки программирования" FontSize="Large" />
    <Picker x:Name="picker" SelectedIndexChanged="picker_SelectedIndexChanged">
      <Picker.Items>
        <x:String>C#</x:String>
        <x:String>C/C++</x:String>
        <x:String>JavaScript</x:String>
        <x:String>PHP</x:String>
      </Picker.Items>
    </Picker>
  </StackLayout>

И тогда в файл связанного кода надо добавить обработчик события:

void picker_SelectedIndexChanged(object sender, EventArgs e)
{
    header.Text = "Вы выбрали: " + picker.Items[picker.SelectedIndex];
}
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850