UIElement.AddHandler Metódus

Definíció

Egy adott irányított eseményhez egy irányított eseménykezelőt ad hozzá, és hozzáadja a kezelőt az aktuális elem kezelőgyűjteményéhez.

Túlterhelések

Name Description
AddHandler(RoutedEvent, Delegate)

Egy adott irányított eseményhez egy irányított eseménykezelőt ad hozzá, és hozzáadja a kezelőt az aktuális elem kezelőgyűjteményéhez.

AddHandler(RoutedEvent, Delegate, Boolean)

Egy adott irányított eseményhez egy irányított eseménykezelőt ad hozzá, és hozzáadja a kezelőt az aktuális elem kezelőgyűjteményéhez. handledEventsToo Adja megtrue, hogy a megadott kezelőt meghívja-e az olyan irányított eseményhez, amelyet már egy másik elem kezelt az eseményútvonalon.

AddHandler(RoutedEvent, Delegate)

Egy adott irányított eseményhez egy irányított eseménykezelőt ad hozzá, és hozzáadja a kezelőt az aktuális elem kezelőgyűjteményéhez.

public:
 virtual void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler);
public void AddHandler(System.Windows.RoutedEvent routedEvent, Delegate handler);
abstract member AddHandler : System.Windows.RoutedEvent * Delegate -> unit
override this.AddHandler : System.Windows.RoutedEvent * Delegate -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate)

Paraméterek

routedEvent
RoutedEvent

A kezelendő irányított esemény azonosítója.

handler
Delegate

Hivatkozás a kezelő implementálására.

Megvalósítás

Megjegyzések

Ugyanahhoz az eseményhez többször is hozzáadhat ugyanahhoz a kezelőhöz kivétel emelése nélkül. A kezelőt azonban a rendszer valójában többször hívja meg az esemény kezelésekor. Ezért gondolja át, hogy ennek a viselkedésnek milyen mellékhatásai lehetnek, amelyeket figyelembe kell venni a kezelő implementációjában.

Ez a módszer általában az egyéni irányított események Microsoft .NET eseményelérési mintájához tartozó "hozzáadás" kiegészítő implementációjának biztosítására szolgál.

A következőre érvényes:

AddHandler(RoutedEvent, Delegate, Boolean)

Egy adott irányított eseményhez egy irányított eseménykezelőt ad hozzá, és hozzáadja a kezelőt az aktuális elem kezelőgyűjteményéhez. handledEventsToo Adja megtrue, hogy a megadott kezelőt meghívja-e az olyan irányított eseményhez, amelyet már egy másik elem kezelt az eseményútvonalon.

public:
 void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler, bool handledEventsToo);
public void AddHandler(System.Windows.RoutedEvent routedEvent, Delegate handler, bool handledEventsToo);
member this.AddHandler : System.Windows.RoutedEvent * Delegate * bool -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate, handledEventsToo As Boolean)

Paraméterek

routedEvent
RoutedEvent

A kezelendő irányított esemény azonosítója.

handler
Delegate

Hivatkozás a kezelő implementálására.

handledEventsToo
Boolean

true regisztrálja a kezelőt úgy, hogy a rendszer akkor is meghívja, ha az irányított eseményt az eseményadatok kezelik; false regisztrálja a kezelőt az alapértelmezett feltétellel, amely szerint nem lesz meghívva, ha az átirányított esemény már meg van jelölve.

Az alapértelmezett érték a false.

Ne kérje meg rendszeresen az irányított események újrakézbesítését.

Példák

Az alábbi példa egy olyan kezelőt valósít meg az Initialized eseményen egy lapon, amely egy meghatározott kezelőt csatol a lap nevesített elemeinek egyikéhez a használatával handledEventsTootrue. Ezt a kezelőt akkor is meghívja a rendszer, ha az útvonal egy másik eleme a kezeltként megjelölte a megosztott eseményadatokat, mielőtt elérné az útvonal kezelőelemét.

void PrimeHandledToo(object sender, EventArgs e)
{
    dpanel2.AddHandler(Button.ClickEvent, new RoutedEventHandler(GetHandledToo), true);
}
Private Sub PrimeHandledToo(ByVal sender As Object, ByVal e As EventArgs)
    dpanel2.AddHandler(Button.ClickEvent, New RoutedEventHandler(AddressOf GetHandledToo), True)
End Sub

Megjegyzések

Az alacsony szintű bemeneti események gyakorlati feldolgozása összetett feladat. Számos vezérlő olyan viselkedést valósít meg, amelyben egy adott esemény kezelve van, és egy másik intuitívabb esemény váltja fel. A vezérlők általában csak akkor jelölnek meg egy platformbemeneti eseményt, ha valamilyen tervezési szándék van erre. Bizonyos esetekben előfordulhat, hogy ezek a tervezési szándékok nem azok, amelyeket a bemeneti esemény adott kezelése igényel. Ezekben a forgatókönyvekben a kezelők regisztrálása handledEventsTootrue a megfelelő módon történik. De ezt nem szabad rutinszerűen megtennie. A kezelők meghívása minden eseményre válaszul még akkor is, ha a kezelés bonyolítja a saját alkalmazásesemény-feldolgozási logikáját. Ha a kezelő logikája jelentős, a teljesítmény csökkenhet. Érdemes a már kezelt eseményekhez csatoló kezelőket használni olyan helyzetekben, amikor a fejlesztési folyamat során már felfedezte, hogy bizonyos vezérlők az alkalmazáslogikával kezelni kívánt eseményeket kezelik.

Az egyes eseményvezérlési kombinációk osztálykezelési viselkedésének elkerülésére szolgáló másik módszer az adott esemény előzetes verziójának használata. Ha például MouseLeftButtonDown az osztálykezelés által kezeltként van megjelölve, akkor előfordulhat, hogy ehelyett hozzá tud adni kezelőket PreviewMouseLeftButtonDown .

Ugyanahhoz az eseményhez többször is hozzáadhat ugyanahhoz a kezelőhöz kivétel emelése nélkül. A kezelőt azonban a rendszer valójában többször hívja meg az esemény kezelésekor. Ezért gondolja át, hogy ennek a viselkedésnek milyen mellékhatásai lehetnek, amelyeket figyelembe kell venni a kezelő implementációjában.

Ez a módszer általában az egyéni irányított események Microsoft .NET eseményelérési mintájához tartozó "hozzáadás" kiegészítő implementációjának biztosítására szolgál.

A következőre érvényes: