eigentlich habe ich zwei Probleme, die ich lösen und in meiner wpf-Anwendung zusammenbringen möchte.Event-Handler + Formatierung mehrerer Tasten - WPF
Ich habe mehrere Tasten, die ein bestimmtes Layout haben.
<Window.Resources>
<Style x:Key="greenButton" TargetType="Button">
<Setter Property="Background" Value="LightGreen" />
<Setter Property="FontSize" Value="20"/>
<Setter Property="BorderThickness" Value="1"/>
</Style>
...
</Window.Resources>
ok, fein und hier sind meine Tasten:
<Button x:Name="btn100" Grid.Column="0" Grid.Row="2" Style="{StaticResource greenButton}">100</Button>
<Button x:Name="btn101" Grid.Column="0" Grid.Row="3" Style="{StaticResource greenButton}">101</Button>
<Button x:Name="btn102" Grid.Column="0" Grid.Row="4" Style="{StaticResource greenButton}">102</Button>
Dann, nachdem ein Knopf-Click Ich möchte eine Methode auslösen, dass die Beschriftung der Schaltfläche muss
private void btn100_Click(object sender, RoutedEventArgs e)
{
name = (sender as Button).Content.ToString();
doMethod(name);
}
Ok. Aber ich habe so viele Buttons, also möchte ich dann mit dem selben Click - Event-Handler zusammen bringen. Ich versuchte dies:
<StackPanel Button.Click="button_Click" Grid.RowSpan="20">
<Button Grid.Column="0" Grid.Row="0" FontWeight="Bold" BorderBrush="Black" Style="{StaticResource greenButton}">LT 1</Button>
<Button x:Name="btn100" Grid.Column="0" Grid.Row="2" Style="{StaticResource greenButton}">100</Button>
<Button x:Name="btn101" Grid.Column="0" Grid.Row="3" Style="{StaticResource greenButton}">101</Button>
<Button x:Name="btn102" Grid.Column="0" Grid.Row="4" Style="{StaticResource greenButton}">102</Button>
</StackPanel>
Mein C# -Code ist jetzt:
private void button_Click(object sender, RoutedEventArgs e)
{
name= (sender as Button).Content.ToString();
doMethod(name);
}
Und jetzt habe ich meine zwei Probleme:
- die Zeilenausrichtung funktioniert nicht für meine Knöpfe. Mit dem Stackpanel sind sie jetzt größer/höher als meine Zeilen, die ich in meinem Grid definiert habe
- Ich bekomme den Namen der Schaltfläche nicht. Es ist immer Null
Thx für Hilfe im Voraus.
Edit: Kein Duplikat In WPF can I attach the same click handler to multiple buttons at once like I can in Javascript/Jquery? Meine Lösung zu diesem Beitrag basiert, aber ich habe Probleme einen Schritt weiter zu gehen (Layout + Übertragungsvariablen)
Mögliches Duplikat (http://stackoverflow.com/questions/4780132/ in-wpf-can-i-attach-der-same-click-handler-to-multiple-buttons-bei-einmal-wie-ich-ca) – ASh
kein duplikat. Meine Lösung basiert auf diesem Post, aber ich habe Probleme, einen Schritt weiter zu gehen (Layout + Transfer-Variablen) – Knuspakeks
Als eine Anmerkung ist es natürlich nicht notwendig, das StackPanel einzuführen (was offensichtlich Ihr Layout zerstört). Sie können auch 'Button.Click' im Grid zuweisen. – Clemens