2017-02-12 4 views
2

Ich habe einen Knopf auf meinem Bildschirm und wenn ich den Knopf drücke, will ich einen Pflücker mit einer Liste von Einzelteilen zeigen und wenn ein Gegenstand gewählt wird, sollte der Text des Knopfes zu und ändern Der Pflücker sollte weggehen.Wie man einen Picker dynamisch hinzufügt

Dies ist mein Code:

Picker picker = new Picker 
    { 
     Title = "What's in the slot?", 
     VerticalOptions = LayoutOptions.CenterAndExpand 
     //HorizontalOptions = LayoutOptions.Center 

    }; 

Und die Funktion, die aufgerufen wird, wenn die Taste gedrückt wird:

private void Displaypickerview(int row, int column) 
    { 
     if (status == "filling board") 
     { 
      foreach (string text in pickerText) 
      { 
       picker.Items.Add(text); 
      } 
      foreach (string ore in oreLevels) 
      { 
       picker.Items.Add(ore); 
      } 


      picker.SelectedIndexChanged += (sender, args) => 
      { 
       if (picker.SelectedIndex == -1) 
       { 

       } 
       else 
       { 
        //change value of cell and button 
        Picker picker = (Picker)sender; 
        int index = picker.SelectedIndex; 

        if (index < pickerText.Length) 
        { 
         board[row, column].Text = pickerText[index - 1]; 
        } 
        else { 
         board[row, column].Text = oreLevels[index - 1 - pickerText.Length]; 
        } 
       } 
      }; 
     } 
     else if (status == "choosing item") 
     { 

     } 

    } 

Aber ich weiß nicht, wie ich auf die die Picker Ansicht machen sollte Bildschirm und entfernen Sie es anschließend.

Update:

Was die Eventhandler der Schaltfläche Fertig im Bild unten ist.

Picker

Antwort

5

Sie könnten den Picker auf Ihre Grid hinzufügen oder was auch immer Panel Sie verwenden, indem es auf die Children Sammlung hinzufügen:

Grid.SetRow(picker, 0); //first row 
Grid.SetColumn(picker, 0); //first column 
grid.Children.Add(picker); 

Ebenso entfernen Sie es, indem sie es aus der Children Sammlung zu entfernen:

grid.Children.Remove(picker); 
+0

Ich habe ein Raster der Schaltfläche, so würde es nicht den Knopf auf th entfernen Die erste Zeile und die erste Spalte – Cing

+0

Die Methoden Grid.SetRow/Grid.SetColumn legen die angehängten Eigenschaften Grid.Row und Grid.Column des Elements fest, d. h. es gibt an, auf welcher Zeile und Spalte im Grid das Element (Picker) liegt. Und Sie entfernen das Element, das Sie an die Remove-Methode übergeben. – mm8

+0

Die remove-Funktion sollte aufgerufen werden, wenn Sie die done-Taste drücken, aber wie lautet der Code für die done-Taste? – Cing

Verwandte Themen