2010-08-01 17 views
12

in prozeduralen Code in kann folgende tun:Fügen Sie mehrere Ereignishandler für ein Ereignis in XAML hinzu?

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

Aber wie kann ich mehr Event-Handler für die Click-Ereignis der Schaltfläche in XAML hinzu? Danke für jeden Hinweis!

+0

Warum Sie das tun wollen? Was versuchst du zu erreichen? – Dabblernl

+0

Ich möchte das auch tun. Ich möchte Ereignisse in der XAML ordnungsgemäß abonnieren können, nicht in einer eingeschränkten Weise (vor allem, weil es aufgeräumter Code gibt & es (XAML) fühlt sich unvollständig ohne) Entweder Semikolon-Trennung oder einfach mehrere = " "Optionen wären nett – imma

+0

Dies würde ermöglichen, die Ereignisbehandlungsroutinen für bestimmte Elemente frei von allgemeinen Prozeduren zu komponieren, anstatt eine Prozedur speziell für jedes Element nur für diese Komposition schreiben zu müssen. Kurz: Es wäre kürzer und süßer. – migle

Antwort

8

Sie können nicht mehr als einen Ereignishandler in XAML abonnieren. Sie können jedoch den gleichen Effekt erzielen, indem Sie einen einzelnen Event-Handler abonnieren und dann zwei oder mehr Methoden vom Event-Handler aufrufen.

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

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

    private void ButtonOnClick2() 
    { 
     //Do something... 
    } 
+0

Ich denke, das vermisst den Punkt. Funktionelle Zusammensetzung wäre immer möglich. Aber das Schreiben dieser Komposition im XAML würde einen bestimmten Handler für eine Schaltfläche vermeiden. – migle

0

Sie können mehrere Handler in xaml wie folgt angeben:

<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> 
Verwandte Themen