WPF多个按钮,单击功能相同,但参数不同

lvl*_*ack 2 .net c# wpf xaml

我想使几个按钮具有相同的单击功能但参数不同。像这样

XAML:

<Button Click="MyClickFunction(1)" Content="MyFunc(1)"/>
<Button Click="MyClickFunction(2)" Content="MyFunc(2)"/>
<Button Click="MyClickFunction(3)" Content="MyFunc(3)"/>
<Button Click="MyClickFunction(4)" Content="MyFunc(4)"/>
Run Code Online (Sandbox Code Playgroud)

C#:

private void MyClickFunction(object sender, RoutedEventArgs e, int myParam)
{
    //do something with parameter e.g. MessageBox.Show()
    MessageBox.Show(myParam.ToString());
}
Run Code Online (Sandbox Code Playgroud)

如何在xaml标记中传递参数,否则我将不得不采用其他方式?

Sal*_*ari 5

使用Tag按钮中的属性。像这样:

<Button Click="MyClickFunction" Tag="1" Content="MyFunc(1)"/>
<Button Click="MyClickFunction" Tag="2" Content="MyFunc(2)"/>
<Button Click="MyClickFunction" Tag="3" Content="MyFunc(3)"/>
<Button Click="MyClickFunction" Tag="4" Content="MyFunc(4)"/>
Run Code Online (Sandbox Code Playgroud)

并在后面的代码中:

private void MyClickFunction(object sender, RoutedEventArgs e)
{
    var tag = ((Button)sender).Tag;
    MessageBox.Show(tag.ToString());
}
Run Code Online (Sandbox Code Playgroud)