2010-10-17 13 views

risposta

10

Non c'è differenza ... la prima è una scorciatoia per il secondo.

In realtà, se si tenta in entrambe le direzioni, quindi utilizzare Reflector per smontare il montaggio, si può vedere che è esattamente lo stesso ed entrambi sono interpretati come:

_btnAddNew.Click += new RoutedEventHandler(OnAddNewClick); 
+0

Tuttavia, il primo è molto più piacevole da leggere. :) – Vlad

0

copia da: http://msdn.microsoft.com/en-us/library/system.windows.routedeventhandler.aspx

Il delegato RoutedEventHandler viene utilizzato per qualsiasi evento indirizzato che non riporta informazioni specifiche dell'evento nei dati dell'evento. Ci sono molti eventi di questo tipo; Esempi importanti includono Click and Loaded.

La differenza più significativa tra la scrittura di un gestore per un evento indirizzato rispetto a un evento Common Language Runtime (CLR) generale è che il mittente dell'evento (l'elemento in cui il gestore è collegato e invocato) non può essere considerato necessariamente essere la fonte dell'evento. La fonte è segnalata come una proprietà nei dati dell'evento (fonte). Una differenza tra mittente e Sorgente è il risultato dell'evento che viene indirizzato a diversi elementi, durante l'attraversamento dell'evento indirizzato attraverso un albero di elementi.

È possibile utilizzare il mittente o il Source per un riferimento a un oggetto se non si è intenzionalmente interessati al comportamento di routing di un evento indirizzato diretto o bubbling e si intende solo gestire gli eventi indirizzati sugli elementi in cui sono stati generati. In questa circostanza, mittente e Sorgente sono lo stesso oggetto.

Se si intende sfruttare le caratteristiche intrinseche degli eventi indirizzati e scrivere di conseguenza i gestori, le due proprietà più importanti dei dati dell'evento con cui si lavorerà durante la scrittura dei gestori di eventi sono Sorgente e gestita.

Per alcune combinazioni di eventi di input e classi di controllo WPF, l'elemento che genera l'evento non è il primo elemento che ha l'opportunità di gestirlo. Se l'evento di input ha una versione di anteprima dell'evento, la radice dell'albero degli elementi ha la prima opportunità, può impostare Handled su true nei dati dell'evento condiviso e può influenzare il modo in cui l'evento di input viene segnalato agli elementi rimanenti nella sua rotta di eventi . Il comportamento di gestione Anteprima può dare l'impressione che un particolare evento indirizzato non venga generato come previsto. Per ulteriori informazioni, vedere Anteprima eventi e Panoramica degli input.