実行時に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という名前のコントロールが複数あるようです。
実行時に追加されるコントロールの追跡方法を教えてください。
'どのようにして、counterという名前のコントロール、counter.Text =" 0 "のTextの値を変更することができますか?この行はコード内にあります。 「私は別の機能からそれをしなければなりません」なぜそんなことを考えますか? 「私は複数のカウンターを持っているように見える」と言った。 – Neolisk
ボタンをクリックするたびに、このメソッドが呼び出されます。だから、私はカウンターという名前のコントロールが複数あります。 – user1420504
参照**ローカル変数名**が 'counter'である複数のコントロールがあります。それはあなたが複数のコントロールを持っていることを意味するわけではありません。 1つのオプションは、それぞれにcounter.Name = "something"(毎回異なる)のような名前を付けることです。あるいは、Panelのような共通の親の下に置いて、 'panel.Controls'を参照してください。 – Neolisk