2012-03-18 7 views
0

の背後にあるコードの内容を更新 - 私は背後にあるコードを使用してコンテンツを更新する必要があります、コードの後ろに生成されたボタン私はないことをどのように生成されたボタン

void MakeButtonQ() 
    { 
     Button b2 = new Button(); 
     b2.Content = Class1.Question; 
     b2.Height = 150; 
     b2.Width = 230; 
     b2.Background = new SolidColorBrush(Colors.White); 
     b2.Foreground = new SolidColorBrush(Colors.Black); 
     stackPanel1.Children.Add(b2); 
    } 

の内容を更新します。前もって感謝します!

よろしく、 ジョナサン

+0

あなたはWPFで作業していると思いますか? – Bernard

+0

そのStackPanelの特定のボタンに特定の値がありますか?すべてのボタンには特定の関連クラスがありますか? – Silvermind

+0

はい、それぞれ特定の値が – TransformBinary

答えて

2

変数でボタンへの参照を保存し、この変数を使用してコンテンツを変更します。

Button myButton; 

void MakeButtonQ() 
{ 
    Button b2 = new Button(); 
    b2.Content = Class1.Question; 
    b2.Height = 150; 
    b2.Width = 230; 
    b2.Background = new SolidColorBrush(Colors.White); 
    b2.Foreground = new SolidColorBrush(Colors.Black); 
    stackPanel1.Children.Add(b2); 

    myButton = b2 
} 

void ChangeButtonsContent() 
{ 
    myButton.Content = "Content changed"; 
} 
+0

に変更されています。私はそれに名前を付けても、同じbutton2.name = "test"と入力して test.content = SavedReference; このようなボタンがないので、エラーがテストされますか? – TransformBinary

+0

http://www.c-sharpcorner.com/uploadfile/mahesh/find-controls-by-name-in-wpf/ – TransformBinary

+0

サンプルコードを追加しました。タイプ情報を失わないので、変数を使用する方が便利です。もちろん、配列やリストを保存することもできます。 –

1

コードビハインドの更新は、継続的なストレスを引き起こす無駄な努力です。ありがたいことに代替があります!

コードビハインドクラスは部分クラスであるため、ファイル名の.designer部分を除いて編集できる一致するファイルがあります。そこにControls.FindControlを使用して生成されたボタンにアクセスし、フォームの初期化が行われた後に、コンストラクタから必要な追加/代替プロパティを設定して呼び出すメソッドを追加します。

関連する問題