سؤال

أحتاج إلى مثال بسيط على نفق الحدث الموجه النفق من عنصر تحكم من الوالدين إلى التحكم في الطفل.

(هذا هو ليس رمز حقيقي) - في الواقع، أعمق أذهب، وأكثر أعتقد أن XAML خاطئة - ربما لا ينبغي الاشتراك في الحدث الأفق في XAML على عقدة الطفل (غير متأكد؟)

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

مثال بسيط، موجز سيكون مفيدا.

شكرا، آلان

هل كانت مفيدة؟

المحلول

لست متأكدا، ولكن قد تكون ترغب في النباح.

يتم الإعلان عن RoutEdevent Clickevent من زر (من تقديم العروض التقديمية) على النحو التالي:

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

لاحظ ال readonly RoutingStrategy من Bubble.

ما يلي قد يساعد في فهم النفق والفقاعات والتوجيه: msdn.microsoft.com/en-us/library/system.windows.routingstrategy.aspx

وهذا يجب أن يأخذك بقية الطريق: msdn.microsoft.com/en-us/magazine/cc785480.aspx

نصيحة: من خلال أحداث اتفاقية نفق الاتفاقية في WPF تبدأ ب "معاينة" (EG- "PreviewExPlode". إذا كان الحدث لا يبدأ ب "معاينة"، فربما لا يستخدم RoutingStrategy النفق. كما ترى نفقا فقاعة مقترنة مع إطلاق النفق أولا ثم الفقاعة كما في "previewexplode" تليها "تنفجر".

إذا كنت بحاجة إلى أن يكون لديك زر انقر فوق النفق، فقد تنظر

  1. باستخدام PreviewMousEdown (ليس بالطبع بالطبع ومن المحتمل أن يكون من المحتمل أن يصبح كل ما يلزم من أسفل النقرات).
  2. كتابة Tunnelbutton التي ترفع معاينة موظفة ثم نقرة.

نصائح أخرى

اتضح الكتاب لدي WPF في العمل مع Visual Studio 2008، في الصفحة 149، لديه مخطط مضلل للغاية يبدو أنه يشير إلى أنه يمكن رفع RoutEdevents في عقدة الأصل وهذا الحدث الموجه إلى العقد الطفل.

التي تبين أنها لا تكون هي الحال ... 1/2 يوم في مهب B / C من الرسم البياني السيئ (كتاب جيد إلى حد ما خلاف ذلك) [ISBN: 1-9333988-22-3

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top