Добавление данных в коллекцию элементов средства выбора
Представление средства выбора — это элемент управления для выбора текстового элемента из списка данных. В этой статье объясняется, как заполнить средство выбора данными, добавив его в коллекцию "Элементы" и как реагировать на выбор элементов пользователем.
Заполнение средства выбора данными
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
коллекции.