Udostępnij za pośrednictwem


Dodawanie danych do kolekcji elementów selektora

Widok selektora to kontrolka służąca do wybierania elementu tekstowego z listy danych. W tym artykule wyjaśniono, jak wypełnić selektor danymi, dodając je do kolekcji Items i jak reagować na wybór elementów przez użytkownika.

Wypełnianie selektora danymi

Xamarin.Forms Przed wersją 2.3.4 proces wypełniania Picker danych polegał na dodaniu danych, które mają być wyświetlane do kolekcji tylko Items do odczytu, która jest typu IList<string>. Każdy element w kolekcji musi mieć typ string. Elementy można dodać w języku XAML, inicjując Items właściwość za pomocą listy x:String elementów:

<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>

Równoważny kod języka C# jest pokazany poniżej:

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

Oprócz dodawania Items.Add danych przy użyciu metody można również wstawić dane do kolekcji przy użyciu Items.Insert metody .

Odpowiadanie na wybór elementu

Element Picker obsługuje wybór jednego elementu jednocześnie. Gdy użytkownik wybierze element, SelectedIndexChanged zdarzenie zostanie wyzwolone, a SelectedIndex właściwość zostanie zaktualizowana do liczby całkowitej reprezentującej indeks wybranego elementu na liście. Właściwość SelectedIndex jest liczbą zerową wskazującą element wybrany przez użytkownika. Jeśli żaden element nie jest zaznaczony, w przypadku pierwszego utworzenia Picker i zainicjowania SelectedIndex elementu wartość będzie wynosić -1.

Uwaga

Zachowanie wyboru elementów w elemencie Picker można dostosować w systemie iOS przy użyciu specyficznego dla platformy. Aby uzyskać więcej informacji, zobacz Kontrolowanie wyboru elementu selektora.

Poniższy przykład kodu przedstawia metodę OnPickerSelectedIndexChanged obsługi zdarzeń, która jest wykonywana po uruchomieniu SelectedIndexChanged zdarzenia:

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

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

Ta metoda uzyskuje SelectedIndex wartość właściwości i używa wartości do pobrania wybranego Items elementu z kolekcji. Ponieważ każdy element w Items kolekcji jest elementem string, może być wyświetlany przez obiekt Label bez konieczności rzutu.

Uwaga

Element Picker można zainicjować, aby wyświetlić określony element, ustawiając SelectedIndex właściwość . Jednak właściwość musi zostać ustawiona SelectedIndex po zainicjowaniu kolekcji Items .