2016-12-19 14 views
0

実行時にListViewに項目を追加しています。UWP/C#ランタイムコントロールの値を変更する

OnClickボタンは、ListViewに1つのTextBlockを追加します。ここにコードは

private async void addPlayerButton_Click(object sender, RoutedEventArgs e) 
    { 
     Grid g = new Grid(); 
     ColumnDefinition c1 = new ColumnDefinition(); 
     ColumnDefinition c2 = new ColumnDefinition(); 
     c1.Width = new GridLength(0, GridUnitType.Auto); 
     c2.Width = new GridLength(0, GridUnitType.Auto); 
     g.ColumnDefinitions.Add(c1); 
     g.ColumnDefinitions.Add(c2); 

     PlayersName dialog2 = new PlayersName(); 
     var result2 = await dialog2.ShowAsync(); 
     if(result2 == ContentDialogResult.Primary) 
     { 
      RowDefinition ri = new RowDefinition(); 
      ri.Height = new GridLength(0, GridUnitType.Auto); 
      g.RowDefinitions.Add(ri); 
      TextBlock label = new TextBlock(); 
      TextBlock counter = new TextBlock(); 
      counter.Text = "0"; 
      label.Text = dialog2.Text; 
      g.Children.Add(label); 
      g.Children.Add(counter); 
      Grid.SetRow(label, 0); 
      Grid.SetColumn(label, 0); 
      Grid.SetRow(counter, 1); 
      Grid.SetColumn(counter, 1); 
     } 

      list.Items.Add(g); 

    } 

そして、それはすべて動作する必要があります。

しかし、後で、counterという名前のコントロールをTextの値として変更できますか?私はボタンをクリックするたびに(addPlayerButton_Click)、counterのインスタンスが追加されるので、別の関数からそれを行う必要があります。また、counterという名前のコントロールが複数あるようです。

実行時に追加されるコントロールの追跡方法を教えてください。

+0

'どのようにして、counterという名前のコントロール、counter.Text =" 0 "のTextの値を変更することができますか?この行はコード内にあります。 「私は別の機能からそれをしなければなりません」なぜそんなことを考えますか? 「私は複数のカウンターを持っているように見える」と言った。 – Neolisk

+0

ボタンをクリックするたびに、このメソッドが呼び出されます。だから、私はカウンターという名前のコントロールが複数あります。 – user1420504

+1

参照**ローカル変数名**が 'counter'である複数のコントロールがあります。それはあなたが複数のコントロールを持っていることを意味するわけではありません。 1つのオプションは、それぞれにcounter.Name = "something"(毎回異なる)のような名前を付けることです。あるいは、Panelのような共通の親の下に置いて、 'panel.Controls'を参照してください。 – Neolisk

答えて

0

参照番号ローカル変数名counterである複数のコントロールがあります。名前がcounterの複数のコントロールがあることを意味するわけではありません。 1つのオプションは、

counter.Name = "something" 

やパネルのように、共通の親の下に置くように、それらのそれぞれに名前(別のたびに)与えることです。クラスレベルの変数(リスト、辞書など)を作成することもできます。ボタンをクリックするたびに、ローカル参照を追加します。

+1

ご協力いただきありがとうございます。 parent.FindName( "controlName")は、それがうまくいくように動作します。 – user1420504