Adicionar dados à coleção de itens do seletor
O modo de exibição Seletor é um controle para selecionar um item de texto em uma lista de dados. Este artigo explica como preencher um Seletor com dados adicionando-o à coleção Items e como responder à seleção de itens pelo usuário.
Preenchendo um Seletor com dados
Antes da Xamarin.Forms versão 2.3.4, o processo para preencher um Picker
com dados era adicionar os dados a serem exibidos à coleção somente Items
leitura, que é do tipo IList<string>
. Cada item na coleção deve ser do tipo string
. Itens podem ser adicionados em XAML inicializando a propriedade Items
com uma lista de itens 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>
O código C# equivalente é mostrado abaixo:
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");
Além de adicionar dados usando o método Items.Add
, os dados também podem ser inseridos na coleção usando o método Items.Insert
.
Respondendo à seleção de itens
Um Picker
dá suporte à seleção de um item de cada vez. Quando um usuário seleciona um item, o evento SelectedIndexChanged
é acionado e a propriedade SelectedIndex
é atualizada para um inteiro que representa o índice do item selecionado na lista. A propriedade SelectedIndex
é um número baseado em zero que indica o item que o usuário selecionou. Se nenhum item for selecionado, que é o caso quando o Picker
primeiro é criado e inicializado, SelectedIndex
será -1.
Observação
O comportamento de seleção de item em um Picker
pode ser personalizado no iOS com uma plataforma específica. Para obter mais informações, consulte Controlando a seleção de itens do seletor.
O exemplo de código a seguir mostra o método do manipulador de eventos OnPickerSelectedIndexChanged
, que é executado quando o evento SelectedIndexChanged
é acionado:
void OnPickerSelectedIndexChanged(object sender, EventArgs e)
{
var picker = (Picker)sender;
int selectedIndex = picker.SelectedIndex;
if (selectedIndex != -1)
{
monkeyNameLabel.Text = picker.Items[selectedIndex];
}
}
Esse método obtém o valor da propriedade SelectedIndex
e usa o valor para recuperar o item selecionado da coleção Items
. Como cada item na coleção Items
é um string
, eles podem ser exibidos por um Label
sem a necessidade de uma conversão.
Observação
Um Picker
pode ser inicializado para exibir um item específico definindo a propriedade SelectedIndex
. No entanto, a propriedade SelectedIndex
deve ser definida após a inicialização da coleção Items
.