Если вы хотите использовать код позади, тогда вы можете подключить его к одному обработчику событий, затем вы можете привести отправителя к Button (или FrameworkElement) и проверить его Свойство Name .
Расширяя ответ Гоблина ниже; если вы хотите придерживаться кода и событий, вы можете определить событие на родительской панели:
<StackPanel Button.Click="anyButtonClicked">
<Button Content="0" Name="button0"/>
<Button Content="1" Name="button1"/>
<Button Content="2" Name="button2"/>
...
<Button Content="9" Name="button9"/>
</StackPanel>
Затем используйте e.OriginalSource, приведенный как Button или FrameworElement, для получения имени.
private void anyButtonClicked(object sender, RoutedEventArgs e)
{
var source = e.OriginalSource as FrameworkElement;
if (source == null)
return;
MessageBox.Show(source.Name);
}
В качестве альтернативы вы можете воспользоваться подходом MVVM, иметь одну команду, к которой привязаны все ваши кнопки, и передать CommandParameter для их дифференциации.