Beispiel #1
0
        public void HandledEventTest()
        {
            RoutedEventTestElement root = new RoutedEventTestElement();
            RoutedEventTestElement child1 = new RoutedEventTestElement();
            RoutedEventTestElement child2 = new RoutedEventTestElement();

            root.AddVisualChild(child1);
            child1.AddVisualChild(child2);

            int rootEventCount = 0;
            int rootHandledEventCount = 0;
            int child1EventCount = 0;
            int child2EventCount = 0;

            root.Bubble += (sender, e) => { rootEventCount++; };
            child1.Bubble += (sender, e) => { child1EventCount++; e.Handled = true; };
            child2.Bubble += (sender, e) => { child2EventCount++; };
            root.AddHandler(RoutedEventTestElement.BubbleEvent, new RoutedEventHandler((sender, e) => { rootHandledEventCount++; }), true);

            child2.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.BubbleEvent, child2));

            Assert.AreEqual(0, rootEventCount);
            Assert.AreEqual(1, rootHandledEventCount);
            Assert.AreEqual(1, child1EventCount);
            Assert.AreEqual(1, child2EventCount);
        }
        public void HandledEventTest()
        {
            RoutedEventTestElement root   = new RoutedEventTestElement();
            RoutedEventTestElement child1 = new RoutedEventTestElement();
            RoutedEventTestElement child2 = new RoutedEventTestElement();

            root.AddVisualChild(child1);
            child1.AddVisualChild(child2);

            int rootEventCount        = 0;
            int rootHandledEventCount = 0;
            int child1EventCount      = 0;
            int child2EventCount      = 0;

            root.Bubble   += (sender, e) => { rootEventCount++; };
            child1.Bubble += (sender, e) => { child1EventCount++; e.Handled = true; };
            child2.Bubble += (sender, e) => { child2EventCount++; };
            root.AddHandler(RoutedEventTestElement.BubbleEvent, new RoutedEventHandler((sender, e) => { rootHandledEventCount++; }), true);

            child2.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.BubbleEvent, child2));

            Assert.AreEqual(0, rootEventCount);
            Assert.AreEqual(1, rootHandledEventCount);
            Assert.AreEqual(1, child1EventCount);
            Assert.AreEqual(1, child2EventCount);
        }
        public void RoutingStrategyTest()
        {
            RoutedEventTestElement root   = new RoutedEventTestElement();
            RoutedEventTestElement child1 = new RoutedEventTestElement();
            RoutedEventTestElement child2 = new RoutedEventTestElement();

            root.AddVisualChild(child1);
            child1.AddVisualChild(child2);

            int rootLastEvent   = 0;
            int child1LastEvent = 0;
            int child2LastEvent = 0;

            int currentEvent = 0;

            root.Direct   += (sender, e) => { rootLastEvent = ++currentEvent; };
            root.Bubble   += (sender, e) => { rootLastEvent = ++currentEvent; };
            root.Tunnel   += (sender, e) => { rootLastEvent = ++currentEvent; };
            child1.Direct += (sender, e) => { child1LastEvent = ++currentEvent; };
            child1.Bubble += (sender, e) => { child1LastEvent = ++currentEvent; };
            child1.Tunnel += (sender, e) => { child1LastEvent = ++currentEvent; };
            child2.Direct += (sender, e) => { child2LastEvent = ++currentEvent; };
            child2.Bubble += (sender, e) => { child2LastEvent = ++currentEvent; };
            child2.Tunnel += (sender, e) => { child2LastEvent = ++currentEvent; };

            child1.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.DirectEvent, child1));

            Assert.AreEqual(0, rootLastEvent);
            Assert.AreEqual(1, child1LastEvent);
            Assert.AreEqual(0, child2LastEvent);

            child1.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.BubbleEvent, child1));

            Assert.AreEqual(3, rootLastEvent);
            Assert.AreEqual(2, child1LastEvent);
            Assert.AreEqual(0, child2LastEvent);

            child1.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.TunnelEvent, child1));

            Assert.AreEqual(4, rootLastEvent);
            Assert.AreEqual(5, child1LastEvent);
            Assert.AreEqual(0, child2LastEvent);
        }
Beispiel #4
0
        public void RoutingStrategyTest()
        {
            RoutedEventTestElement root = new RoutedEventTestElement();
            RoutedEventTestElement child1 = new RoutedEventTestElement();
            RoutedEventTestElement child2 = new RoutedEventTestElement();

            root.AddVisualChild(child1);
            child1.AddVisualChild(child2);

            int rootLastEvent = 0;
            int child1LastEvent = 0;
            int child2LastEvent = 0;

            int currentEvent = 0;

            root.Direct += (sender, e) => { rootLastEvent = ++currentEvent; };
            root.Bubble += (sender, e) => { rootLastEvent = ++currentEvent; };
            root.Tunnel += (sender, e) => { rootLastEvent = ++currentEvent; };
            child1.Direct += (sender, e) => { child1LastEvent = ++currentEvent; };
            child1.Bubble += (sender, e) => { child1LastEvent = ++currentEvent; };
            child1.Tunnel += (sender, e) => { child1LastEvent = ++currentEvent; };
            child2.Direct += (sender, e) => { child2LastEvent = ++currentEvent; };
            child2.Bubble += (sender, e) => { child2LastEvent = ++currentEvent; };
            child2.Tunnel += (sender, e) => { child2LastEvent = ++currentEvent; };

            child1.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.DirectEvent, child1));

            Assert.AreEqual(0, rootLastEvent);
            Assert.AreEqual(1, child1LastEvent);
            Assert.AreEqual(0, child2LastEvent);

            child1.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.BubbleEvent, child1));

            Assert.AreEqual(3, rootLastEvent);
            Assert.AreEqual(2, child1LastEvent);
            Assert.AreEqual(0, child2LastEvent);

            child1.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.TunnelEvent, child1));

            Assert.AreEqual(4, rootLastEvent);
            Assert.AreEqual(5, child1LastEvent);
            Assert.AreEqual(0, child2LastEvent);
        }