System.Windows.Automation.Automation.AddAutomationPropertyChangedEventHandler C# (CSharp) Method

AddAutomationPropertyChangedEventHandler() public static method

public static AddAutomationPropertyChangedEventHandler ( AutomationElement element, TreeScope scope, AutomationPropertyChangedEventHandler eventHandler ) : void
element AutomationElement
scope TreeScope
eventHandler AutomationPropertyChangedEventHandler
return void
        public static void AddAutomationPropertyChangedEventHandler(AutomationElement element, TreeScope scope, AutomationPropertyChangedEventHandler eventHandler, params AutomationProperty[] properties)
        {
            Utility.ValidateArgumentNonNull(element, "element");
            Utility.ValidateArgumentNonNull(eventHandler, "eventHandler");
            Utility.ValidateArgumentNonNull(properties, "properties");
            if (properties.Length == 0)
            {
                throw new ArgumentException("AtLeastOnePropertyMustBeSpecified");
            }
            int[] propertyIdArray = new int[properties.Length];
            for (int i = 0; i < properties.Length; ++i)
            {
                Utility.ValidateArgumentNonNull(properties[i], "properties");
                propertyIdArray[i] = properties[i].Id;
            }

            try
            {
                PropertyEventListener listener = new PropertyEventListener(AutomationElement.StructureChangedEvent, element, eventHandler);
                Factory.AddPropertyChangedEventHandler(
                    element.NativeElement,
                    (UIAutomationClient.TreeScope)scope,
                    CacheRequest.CurrentNativeCacheRequest,
                    listener,
                    propertyIdArray);
                ClientEventList.Add(listener);
            }
            catch (System.Runtime.InteropServices.COMException e)
            {
                Exception newEx; if (Utility.ConvertException(e, out newEx)) { throw newEx; } else { throw; }
            }
        }

Usage Example

Exemplo n.º 1
0
        //The "Z1_" prefix ensures the test case's execution sequence
        public void Z1_DynamicTest()
        {
            var automationEventsArray = new [] {
                new { Sender = (object)null, Args = (AutomationPropertyChangedEventArgs)null }
            };
            var automationEvents = automationEventsArray.ToList();

            automationEvents.Clear();

            AutomationPropertyChangedEventHandler handler =
                (o, e) => automationEvents.Add(new { Sender = o, Args = e });

            At.AddAutomationPropertyChangedEventHandler(listView1Element,
                                                        TreeScope.Element, handler,
                                                        MultipleViewPattern.CurrentViewProperty,
                                                        MultipleViewPattern.SupportedViewsProperty);

            RunCommand("change list view mode list");

            //var currentView = pattern.Current.CurrentView;

            // We should expect an AutomationPropertyChangedEvent here,
            // But since on Windows Winforms didn't fire such a event, then we also assert no event fired.
            Assert.AreEqual(0, automationEvents.Count, "event count");

            /*
             * Assert.AreEqual (1, automationEvents.Count, "event count");
             * Assert.AreEqual (listView1Element, automationEvents [0].Sender, "event sender");
             * Assert.AreEqual (MultipleViewPattern.CurrentViewProperty, automationEvents [0].Args.Property, "property");
             * Assert.AreEqual (3, automationEvents [0].Args.NewValue, "new value");
             * Assert.AreEqual (1, automationEvents [0].Args.OldValue, "old value");
             * Assert.AreEqual ("List", pattern.GetViewName (currentView), "Current view name" );*/
        }
All Usage Examples Of System.Windows.Automation.Automation::AddAutomationPropertyChangedEventHandler