2017-03-20 18 views
0

buttonのすべてのentryコントロール値を取得したいと思う。Xamarinフォーム - ボタンクリック時に動的に追加されたエントリコントロール値の値を取得する

私のコードは以下の通りである - これは私がページ上の動的制御を追加してい方法です:

 public BookSeat() 
     { 
      ScrollView scroll = new ScrollView(); 
      StackLayout stack = new StackLayout(); 

      int count = Convert.ToInt32(Application.Current.Properties["NoPersonEntry"]); 

      for (int i = 0; i < count; i++) 
      { 
       stack.Children.Add(
        new StackLayout() 
        { 
         Children = { 
          new Label(){TextColor = Color.Blue, Text = "First Name: ", WidthRequest = 100,StyleId="FnameLabel"+i }, 
          new Entry() {StyleId="FnameEntry"+i } 
         } 
        } 
       ); 
      } 

      Button button = new Button 
      { 
       Text = "Save" 
      }; 

      button.Clicked += OnButtonClicked; 
      stack.Children.Add(button); 

      scroll.Content = stack; 
      this.Content = scroll; 
     } 

を私は何buttonクリック

 public void OnButtonClicked(object sender, EventArgs e) 
     { 
      // Here I want to get value 
     } 
+0

あなたが値を取得するために結合 'MVVM'とデータを使用する必要がありますが、これは間違った方法です。 'ListView'を使用し、複数のエントリを持つStackLayoutを使用しないでください。' ItemTemplate'を 'Entry'で作成し、' Text'プロパティをいくつかのモデルにバインドする必要があります。 –

+0

@AkashKava返信いただきありがとうございます。サンプルやサンプルデータをお願いしますか? –

+0

https://developer.xamarin.com/samples/xamarin-forms/UserInterface/ListView/SwitchEntryTwoBinding/ –

答えて

1

上の値を取得したいのためのコードを下回っています後でアクセスできるようにエントリをリストに保存することができます。例えば

:あなたがこれを行うことができます

private List<Entry> _myentries = new List<Entry>(); 

public BookSeat() 
     { 
      ScrollView scroll = new ScrollView(); 
      StackLayout stack = new StackLayout(); 

      int count = Convert.ToInt32(Application.Current.Properties["NoPersonEntry"]); 

      for (int i = 0; i < count; i++) 
      { 
var entry = new Entry() {StyleId="FnameEntry"+i }; 
_myentries.Add(entry); 
       stack.Children.Add(
        new StackLayout() 
        { 
         Children = { 
          new Label(){TextColor = Color.Blue, Text = "First Name: ", WidthRequest = 100,StyleId="FnameLabel"+i }, 
          entry 
         } 
        } 
       ); 
      } 
[...] 
     } 

:今すぐ

public void OnButtonClicked(object sender, EventArgs e) 
     { 
      foreach(var entry in _myentries) 
      { 
       var text = entry.Text;//here we go 
      } 


} 
+0

ありがとうございます.. –

関連する問題