Hvorfor prøver du ikke at få det jeg foreslår til at virke, istedet for en eller anden workaround der for det første er langt sværere at programmere, og for det andet aldrig vil virke så godt.
Som allerede sagt:
1) Lav et stack panel (i XAML, hold dig fra at lave det i C# indtil du forstår routed events)
2) Lav dine knapper inde i dit stack panel. Dette kan du gøre fra C# eller XML.
3) Tilføj en attribut til dette stackpanel med navnet "Button.Click" - her definerer du event handleren
4) I C# event handleren "(Button)e.OriginalSource).Name" indeholder navnet.
Det kommer til at se sådan ud:
<Window x:Class="SletMig.Window1"
xmlns="
http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="
http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300">
<StackPanel Button.Click="StackPanel_Click">
<Button Name="Button1" Content="Button 1" />
<Button Name="Button2" Content="Button 2" />
</StackPanel>
</Window>
private void StackPanel_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(((Button)e.OriginalSource).Name);
}