Добавление данных в коллекцию элементов средства выбора

Представление средства выбора — это элемент управления для выбора текстового элемента из списка данных. В этой статье объясняется, как заполнить средство выбора данными, добавив его в коллекцию "Элементы" и как реагировать на выбор элементов пользователем.

Заполнение средства выбора данными

Xamarin.Forms До 2.3.4 процесс заполнения Picker данными должен был добавить данные для отображения в коллекцию только Items для чтения, которая имеет типIList<string>. Каждый элемент в коллекции должен иметь тип string. Элементы можно добавить в XAML, инициализировав Items свойство со списком x:String элементов:

<Picker Title="Select a monkey"
        TitleColor="Red">
  <Picker.Items>
    <x:String>Baboon</x:String>
    <x:String>Capuchin Monkey</x:String>
    <x:String>Blue Monkey</x:String>
    <x:String>Squirrel Monkey</x:String>
    <x:String>Golden Lion Tamarin</x:String>
    <x:String>Howler Monkey</x:String>
    <x:String>Japanese Macaque</x:String>
  </Picker.Items>
</Picker>

Ниже приведен эквивалентный код на C#:

var picker = new Picker { Title = "Select a monkey", TitleColor = Color.Red };
picker.Items.Add("Baboon");
picker.Items.Add("Capuchin Monkey");
picker.Items.Add("Blue Monkey");
picker.Items.Add("Squirrel Monkey");
picker.Items.Add("Golden Lion Tamarin");
picker.Items.Add("Howler Monkey");
picker.Items.Add("Japanese Macaque");

Помимо добавления данных с помощью Items.Add метода, данные также можно вставить в коллекцию с помощью Items.Insert метода.

Реагирование на выбор элемента

Поддерживает Picker выбор одного элемента одновременно. Когда пользователь выбирает элемент, SelectedIndexChanged событие запускается и SelectedIndex свойство обновляется до целого числа, представляющего индекс выбранного элемента в списке. Свойство SelectedIndex — это отсчитываемое от нуля число, указывающее выбранный пользователем элемент. Если элемент не выбран, то в этом случае Picker при первом создании и инициализации SelectedIndex будет значение -1.

Примечание.

Поведение выбора элементов в Picker iOS можно настроить с помощью конкретной платформы. Дополнительные сведения см. в разделе "Управление выбором элементов".

В следующем примере кода показан OnPickerSelectedIndexChanged метод обработчика событий, который выполняется при SelectedIndexChanged срабатывании события:

void OnPickerSelectedIndexChanged(object sender, EventArgs e)
{
  var picker = (Picker)sender;
  int selectedIndex = picker.SelectedIndex;

  if (selectedIndex != -1)
  {
    monkeyNameLabel.Text = picker.Items[selectedIndex];
  }
}

Этот метод получает SelectedIndex значение свойства и использует значение для получения выбранного Items элемента из коллекции. Так как каждый элемент в Items коллекции является элементом string, их можно отобразить Label без необходимости приведения.

Примечание.

Можно Picker инициализировать для отображения определенного элемента, задав SelectedIndex свойство. SelectedIndex Однако свойство должно быть задано после инициализации Items коллекции.