Condividi tramite


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 stringoggetto , 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.