Aggiunta di dati alla raccolta di elementi per una selezione
La visualizzazione Selezione è un controllo per la selezione di un elemento di testo da un elenco di dati. Questo articolo illustra come popolare una selezione con i dati aggiungendoli alla raccolta Items e come rispondere alla selezione di elementi da parte dell'utente.
Popolamento di una selezione con i dati
Prima della Xamarin.Forms versione 2.3.4, il processo di popolamento di un Picker
oggetto con dati consiste nell'aggiungere i dati da visualizzare alla raccolta di sola Items
lettura, ovvero di tipo IList<string>
. Ogni elemento della raccolta deve essere di tipo string
. Gli elementi possono essere aggiunti in XAML inizializzando la Items
proprietà con un elenco di x:String
elementi:
<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>
Il codice C# equivalente è illustrato di seguito:
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");
Oltre ad aggiungere dati usando il Items.Add
metodo , i dati possono anche essere inseriti nella raccolta usando il Items.Insert
metodo .
Risposta alla selezione di elementi
Un Picker
oggetto supporta la selezione di un elemento alla volta. Quando un utente seleziona un elemento, viene generato l'evento SelectedIndexChanged
e la SelectedIndex
proprietà viene aggiornata a un numero intero che rappresenta l'indice dell'elemento selezionato nell'elenco. La SelectedIndex
proprietà è un numero in base zero che indica l'elemento selezionato dall'utente. Se non viene selezionato alcun elemento, ovvero quando viene creato e inizializzato per la Picker
prima volta, SelectedIndex
sarà -1.
Nota
Il comportamento di selezione degli elementi in un Picker
può essere personalizzato in iOS con una piattaforma specifica della piattaforma. Per altre informazioni, vedere Controlling Picker Item Selection.For more information, see Controlling Picker Item Selection.
Nell'esempio di codice seguente viene illustrato il OnPickerSelectedIndexChanged
metodo del gestore eventi, che viene eseguito quando viene generato l'evento SelectedIndexChanged
:
void OnPickerSelectedIndexChanged(object sender, EventArgs e)
{
var picker = (Picker)sender;
int selectedIndex = picker.SelectedIndex;
if (selectedIndex != -1)
{
monkeyNameLabel.Text = picker.Items[selectedIndex];
}
}
Questo metodo ottiene il valore della SelectedIndex
proprietà e usa il valore per recuperare l'elemento selezionato dall'insieme Items
. Poiché ogni elemento della Items
raccolta è un string
oggetto , può essere visualizzato da un oggetto Label
senza richiedere un cast.
Nota
Un Picker
oggetto può essere inizializzato per visualizzare un elemento specifico impostando la SelectedIndex
proprietà . Tuttavia, la SelectedIndex
proprietà deve essere impostata dopo l'inizializzazione della Items
raccolta.