2016-12-10 9 views
1

のための単一のイベントをクリックします(btn_1、btn_2、btn_3 ... btn_81)、代わりにこのような各ボタンのクリックイベントを作成するには:私は多くのボタンでWPFウィンドウを持っている多くのボタン

private void btn_1_Click(object sender, RoutedEventArgs e) 
{ 
    if (backColor != null) 
     btn_1.Background = backColor; 
} 

private void btn_2_Click(object sender, RoutedEventArgs e) 
{ 
    if (backColor != null) 
     btn_2.Background = backColor; 
} 

私は、1つのクリックイベントを作成し、そのアクションを実行するためにクリックしたボタンの名前を何らかの形で取得することを意図していました。クリックイベントで実行されるアクションは、ボタンごとに同じです。バックグラウンドを変更する必要があります。

私の問題を説明できることを願っています。 TIA!

+0

動的代わりに81個のボタンを作成する方法を見つけるttonsは、同じハンドラにイベントをクリックしてください。 –

+1

'object sender' <== – McNets

+0

以下の答えはすべて正しいですが、アプローチは厄介です。適切なモデルのコレクションにバインドされたitemsControl(a)を使用して、これらのボタンを動的に作成するか、ケース固有の方法で作成する必要があります。 –

答えて

5

を行うことができ、あなたがBUをバインドすることができます

<StackPanel> 
     <Button Content="btn1" x:Name="btn1" Click="btn_Click"></Button> 
     <Button Content="btn2" x:Name="btn2" Click="btn_Click"></Button> 
     <Button Content="btn3" x:Name="btn3" Click="btn_Click"></Button> 
    </StackPanel> 

そして、背後にあるコード:

Brush backColor = new SolidColorBrush(Colors.Red); 

    private void btn_Click(object sender, RoutedEventArgs e) 
    { 
     Button btn = sender as Button; 

     if (btn != null && backColor != null) 
      btn.Background = backColor; 
    } 
+3

"キャスト"の後に 'btn'がヌルであるかどうかを確認します。 –

+0

はい、良い点です。答えを更新しました。 – Noobie3001

4

各ボタンに同じイベントを追加するだけです。あなたのケースでは、btn_1_Clickを追加してください。あなたはそのような操作を行うことができます。

btn1.Click += btn1_Click; 
btn2.Click += btn1_Click; 
btn3.Click += btn1_Click; 
... 

または

btn1.Click += new EventHandler(btn1_Click); 
btn2.Click += new EventHandler(btn1_Click); 
btn3.Click += new EventHandler(btn1_Click); 
... 


private void btn1_Click(object sender, RoutedEventArgs e) 
{ 
    // do something 
} 
0

あなたはXAMLでは

private void ButtonBase_OnClick(object sender, RoutedEventArgs e) 
    { 
     if (Equals(sender, bt1)) 
     { 

     } 
     else if(Equals(sender, bt2)) 
     { 

     } 
    } 

XAML

<Button Content="Button 1" Name="bt1" Click="ButtonBase_OnClick"/> 
<Button Content="Button 2" Name="bt2" Click="ButtonBase_OnClick"/> 
関連する問題