在XAML中为一个事件添加多个事件处理程序?

ste*_*wpf 12 c# wpf events xaml

在程序代码中可以执行以下操作:

// Add two event handler for the button click event
button1.Click += new RoutedEventHandler(button1_Click_1);
button1.Click += new RoutedEventHandler(button1_Click_2);
Run Code Online (Sandbox Code Playgroud)

但是如何在XAML中为按钮的单击事件添加多个事件处理程序?谢谢你的提示!

Tim*_*oyd 8

您不能在XAML中订阅多个事件处理程序.但是,您可以通过订阅单个事件处理程序然后从事件处理程序调用两个或更多方法来实现相同的效果.

    private void Button_OnClick(object sender, RoutedEventArgs e)
    {
        ButtonOnClick1();
        ButtonOnClick2();
    }

    private void ButtonOnClick1()
    {
        //Do something...
    }

    private void ButtonOnClick2()
    {
        //Do something...
    }
Run Code Online (Sandbox Code Playgroud)


Anj*_*han 5

您可以像这样指定多个处理程序xaml

   <Style  TargetType="{x:Type Button}">            
        <EventSetter Event="Click" Handler="ChangeBackground1"/>
        <EventSetter Event="Click" Handler="ChangeBackground2"/>
        <EventSetter Event="Click" Handler="ChangeBackground3"/>
        <EventSetter Event="Click" Handler="ChangeBackground4"/>
   </Style>
Run Code Online (Sandbox Code Playgroud)