ExecutedRoutedEventHandler Delegasikan
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili metode yang akan menangani peristiwa yang dirutekan Executed dan PreviewExecuted , serta peristiwa terlampir terkait.
public delegate void ExecutedRoutedEventHandler(System::Object ^ sender, ExecutedRoutedEventArgs ^ e);
public delegate void ExecutedRoutedEventHandler(object sender, ExecutedRoutedEventArgs e);
type ExecutedRoutedEventHandler = delegate of obj * ExecutedRoutedEventArgs -> unit
Public Delegate Sub ExecutedRoutedEventHandler(sender As Object, e As ExecutedRoutedEventArgs)
Parameter
- sender
- Object
Objek tempat penanganan aktivitas dilampirkan.
Data peristiwa.
Contoh
Contoh ini membuat yang ExecutedRoutedEventHandler menetapkan properti visual pada target saat perintah dijalankan. Contohnya juga menyertakan CanExecuteRoutedEventHandler untuk perintah yang sama.
// ExecutedRoutedEventHandler for the custom color command.
private void ColorCmdExecuted(object sender, ExecutedRoutedEventArgs e)
{
Panel target = e.Source as Panel;
if (target != null)
{
if (target.Background == Brushes.AliceBlue)
{
target.Background = Brushes.LemonChiffon;
}
else
{
target.Background = Brushes.AliceBlue;
}
}
}
// CanExecuteRoutedEventHandler for the custom color command.
private void ColorCmdCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
if (e.Source is Panel)
{
e.CanExecute = true;
}
else
{
e.CanExecute = false;
}
}
' ExecutedRoutedEventHandler for the custom color command.
Private Sub ColorCmdExecuted(ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
Dim target As Panel = TryCast(e.Source, Panel)
If target IsNot Nothing Then
If target.Background Is Brushes.AliceBlue Then
target.Background = Brushes.LemonChiffon
Else
target.Background = Brushes.AliceBlue
End If
End If
End Sub
' CanExecuteRoutedEventHandler for the custom color command.
Private Sub ColorCmdCanExecute(ByVal sender As Object, ByVal e As CanExecuteRoutedEventArgs)
If TypeOf e.Source Is Panel Then
e.CanExecute = True
Else
e.CanExecute = False
End If
End Sub
Keterangan
Delegasi ini berisi logika implementasi untuk RoutedCommand. Memisahkan logika implementasi dari perintah memungkinkan perintah dipanggil dari sumber dan jenis yang berbeda, dan memungkinkan pemusatan logika perintah.
Delegasi ini juga digunakan untuk CommandManager.Executed dan CommandManager.PreviewExecuted, yang merupakan peristiwa terlampir pada CommandManager kelas yang mengimplementasikan banyak infrastruktur perintah. Tetapi sebagian besar handler praktis akan menangani Executed peristiwa dari tertentu CommandBinding, daripada bekerja di tingkat tersebut CommandManager .
Dalam ExecutedRoutedEventArgs, properti berikut umumnya menarik saat Anda menulis penanganan aktivitas untuk peristiwa rute yang dihasilkan dari perintah yang dijalankan:
Source melaporkan target tempat perintah dijalankan. Setelah perintah dijalankan, Anda juga dapat memikirkan Source lebih umum dalam istilah peristiwa yang dirutekan, sebagai objek yang memunculkan peristiwa yang dirutekan.
Command melaporkan perintah yang dijalankan. Properti ini berguna jika Anda menggunakan pengikatan perintah dan jika Anda menulis handler yang berpotensi menangani beberapa perintah.
Parameter melaporkan parameter khusus perintah apa pun yang diteruskan oleh perintah eksekusi. Tidak semua perintah menggunakan atau mengharapkan parameter khusus perintah.
Handled melaporkan apakah peristiwa yang dirutekan yang dihasilkan dari perintah yang dijalankan sudah ditangani oleh elemen yang berbeda di sepanjang rute. Untuk penanganan aktivitas yang dirutekan, ini adalah praktik yang disarankan untuk memiliki handler yang melakukan pekerjaan yang bermakna saat menangani peristiwa untuk diatur Handled ke
true
. Ini mencegah penangan umum untuk peristiwa menangani peristiwa lagi lebih jauh di sepanjang rute. Untuk informasi selengkapnya tentang penanganan peristiwa yang dirutekan, lihat Menandai Peristiwa Yang Dirutekan sebagai Ditangani, dan Penanganan Kelas.
Delegasi ini juga mewakili handler untuk CommandManager.Executed dan CommandManager.PreviewExecutedEvent, yang merupakan peristiwa terlampir pada CommandManager kelas yang mengimplementasikan banyak infrastruktur perintah. Tetapi sebagian besar handler praktis akan menangani Executed peristiwa dari tertentu CommandBinding, daripada bekerja di tingkat tersebut CommandManager .
Untuk informasi selengkapnya tentang perintah, lihat Gambaran Umum Perintah.
Metode Ekstensi
GetMethodInfo(Delegate) |
Mendapatkan objek yang mewakili metode yang diwakili oleh delegasi yang ditentukan. |