2017-02-12 10 views
2

私は自分の画面上にボタンを持っています。ボタンを押すと、ピッカーにアイテムのリストが表示され、アイテムが選択されるとボタンのテキストがそのピッカーは離れるべきです。動的にピッカーを追加する方法

これは私のコードです:

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

    }; 

そして、ボタンが押されたときに呼び出される関数:

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

     } 

    } 

しかし、私は、私は上のピッカービューをレンダリングする必要があるのか​​分かりません後でそれを取り除いてください。

更新:

下図で行われ、ボタンのEventHandlerはどのようなものです。

Picker

答えて

5

あなたはChildrenコレクションに追加することで、あなたのGridまたは使用しているものは何でもPanelにピッカーを追加することができます。

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

同様にあなたがChildrenコレクションからそれを除去することによって、それを削除します。

grid.Children.Remove(picker); 
+0

私はボタンのグリッドを持っていますので、ボタンを削除しません最初の行と列 – Cing

+0

Grid.SetRow/Grid.SetColumnメソッドは、要素の添付Grid.RowとGrid.Columnプロパティを設定します。つまり、グリッドのどの行と列に要素(ピッカー)が配置されるかを指定します。そして、Removeメソッドに渡す項目を削除します。 – mm8

+0

終了ボタンを押したときにremove関数を呼び出す必要がありますが、終了ボタンのコードは何ですか? – Cing

関連する問題