Share via


ExecutedRoutedEventHandler Delegasikan

Definisi

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.

e
ExecutedRoutedEventArgs

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.

Berlaku untuk

Lihat juga