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
.