UIElement.AddHandler Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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.
|
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.