Frage

Ich brauche ein einfaches Beispiel für einen Tunnel geroutet Ereignis Tunneln von einer übergeordneten Steuerung an eine untergeordnete Steuerelement.

(DIES IST nicht REAL CODE) - in der Tat, desto tiefer gehe ich denke, je mehr ich, dass die XAML falsch ist - wahrscheinlich nicht für das getunnelte Ereignis in XAML anmelden sollte auf der Kindknoten (nicht sicher?)

<PARENT>    
   <MyControl DoSomethingOnUserAction="raiseTunnelEvent"> HELP </MyControl >    
   <CHILD> I SHOULD HANDLE tunnelled event </CHILD> 
</PARENT>

Einfache, prägnantes Beispiel wäre hilfreich.

Danke, Alan

War es hilfreich?

Lösung

Nicht sicher, aber Sie können eine Katze sein wollen, bellen.

Die RoutedEvent ClickEvent von Button (von PresentationFramework) wird erklärt, wie:

public static readonly RoutedEvent ClickEvent = 
    EventManager.RegisterRoutedEvent("Click", 
    RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof
    (ButtonBase));

Beachten Sie die readonly RoutingStrategy von Bubble.

Im Folgenden mit Verständnis Tunnels helfen kann, Blase, und Direct: msdn.microsoft.com/en-us/library/system.windows.routingstrategy.aspx

Und das sollten Sie den Rest des Weges nehmen: msdn.microsoft.com/en-us/magazine/cc785480.aspx

Ein Tipp:.. Vereinbarungstunnelereignisse in WPF beginnen mit „Preview“ (EG- „PreviewExplode“ Wenn das Ereignis nicht mit „Vorschau“ es beginnt wahrscheinlich verwendet nicht den Tunnel RoutingStrategy Auch Sie werden in der Regel sehen ein Tunnel und Blase gepaart mit dem Tunnel zuerst, dann der Blase wie in „PreviewExplode“ gefolgt von „Explodieren“.

Brennen

Wenn Sie eine Taste Klicken Sie Tunnel haben müssen, könnte man erwägen

  1. mit Preview (nicht das gleiche natürlich und wahrscheinlich gefährlich, da nicht alle Maus-downs Klicks werden sollen).
  2. Schreiben eines TunnelButton, die eine PreviewClick wirft und dann ein Klick.

Andere Tipps

Schaltet das Buch aus Ich habe WPF in der Aktion mit Visual Studio 2008, auf Seite 149, hat eine sehr irreführende Darstellung, die das zeigen scheint RoutedEvents kann in einem übergeordneten Knoten und das Routingereignis getunnelt Knoten Kind erhöht werden.

Das erweist sich nicht der Fall sein ... 1/2 Tag geblasen b / c des schlechten Diagramm (ziemlich gutes Buch sonst) [ISBN: 1-933988-22-3]

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top