Partager via


Ajout de données à la collection d’éléments d’un sélecteur

La vue Sélecteur est un contrôle permettant de sélectionner un élément de texte dans une liste de données. Cet article explique comment remplir un sélecteur avec des données en l’ajoutant à la collection Items et comment répondre à la sélection d’éléments par l’utilisateur.

Remplissage d’un sélecteur avec des données

Xamarin.Forms Avant la version 2.3.4, le processus de remplissage d’une Picker donnée devait ajouter les données à afficher à la collection en lecture seuleItems, qui est de type IList<string>. Chaque élément de la collection doit être de type string. Les éléments peuvent être ajoutés en XAML en initialisant la propriété Items avec une liste d’éléments 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>

Le code C# équivalent est illustré ci-dessous :

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");

Outre l’ajout de données à l’aide de la méthode Items.Add, les données peuvent également être insérées dans la collection à l’aide de la méthode Items.Insert.

Réponse à la sélection d’éléments

Un Picker prend en charge la sélection d’un élément à la fois. Lorsqu’un utilisateur sélectionne un élément, l’événement SelectedIndexChanged se déclenche, et la propriété SelectedIndex est mise à jour vers un entier représentant l’index de l’élément sélectionné dans la liste. La propriété SelectedIndex est un nombre de base zéro indiquant l’élément sélectionné par l’utilisateur. Si aucun élément n’est sélectionné, ce qui est le cas lorsque le Picker est initialement créé et initialisé, SelectedIndex est égal à -1.

Remarque

Le comportement de sélection d’élément dans un Picker peut être personnalisé sur iOS avec un Picker propre à la plateforme. Pour plus d’informations, consultez Contrôle de la sélection d’éléments du sélecteur.

L’exemple de code suivant montre la méthode du gestionnaire d’événements OnPickerSelectedIndexChanged, qui est exécutée lorsque l’événement SelectedIndexChanged se déclenche :

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

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

Cette méthode obtient la valeur de la propriété SelectedIndex, et utilise cette valeur pour récupérer l’élément sélectionné à partir de la collection Items. Étant donné que chaque élément de la collection Items est un string, il peut être affiché par un Label sans nécessiter de cast.

Remarque

Un Picker peut être initialisé pour afficher un élément spécifique en définissant la propriété SelectedIndex. Toutefois, la propriété SelectedIndex doit être définie après l’initialisation de la collection Items.