AutomationElementCollection.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / UIAutomation / UIAutomationClient / System / Windows / Automation / AutomationElementCollection.cs / 1305600 / AutomationElementCollection.cs

                            //---------------------------------------------------------------------------- 
//
// 
//    Copyright (C) Microsoft Corporation.  All rights reserved.
//  
//
// 
// Description: Read-only collection of AutomationElements - effectively a 
// wrapper for Array
// 
// History:
//  03/08/2004 : BrendanM - Created
//
//--------------------------------------------------------------------------- 

using System; 
using System.Collections; 
using MS.Internal.Automation;
 
namespace System.Windows.Automation
{
    /// 
    /// A read-only collection of AutomationElement objects 
    /// 
#if (INTERNAL_COMPILE) 
    internal class AutomationElementCollection: ICollection 
#else
    public class AutomationElementCollection: ICollection 
#endif
    {
        //-----------------------------------------------------
        // 
        //  Constructors
        // 
        //----------------------------------------------------- 

        #region Constructors 

        internal AutomationElementCollection(AutomationElement[] elements)
        {
            _elements = elements; 
        }
 
        #endregion Constructors 

 
        //------------------------------------------------------
        //
        //  Public Properties
        // 
        //-----------------------------------------------------
 
        #region Public Properties 

        ///  
        /// Returns the specified item in this collection
        /// 
        public AutomationElement this[int index]
        { 
            get
            { 
                return _elements[ index ]; 
            }
        } 

        #endregion Public Properties

 

        //------------------------------------------------------ 
        // 
        //  Interface ICollection
        // 
        //------------------------------------------------------

        #region Interface ICollection
 
        /// 
        /// Copies all the elements of the current collection to the specified one-dimensional Array. 
        ///  
        public virtual void CopyTo( Array array, int index )
        { 
            _elements.CopyTo( array, index );
        }

        ///  
        /// Copies all the elements of the current collection to the specified one-dimensional Array.
        ///  
        public void CopyTo(AutomationElement[] array, int index) 
        {
            ((ICollection)this).CopyTo(array, index); 
        }

        /// 
        /// Returns the number of elements in this collection 
        /// 
        public int Count 
        { 
            get
            { 
                return _elements.Length;
            }
        }
 
        /// 
        /// Gets an object that can be used to synchronize access to the collection. 
        ///  
        public virtual Object SyncRoot
        { 
            get
            {
                // Don't return _elements.SyncRoot, since that may leak a reference to the array,
                // allowing it to be modified. 
                return this;
            } 
        } 

        ///  
        /// Gets a value indicating whether access to the collection is synchronized (thread-safe).
        /// 
        public virtual bool IsSynchronized
        { 
            get
            { 
                return false; 
            }
        } 

        /// 
        /// Returns an IEnumerator for the collection
        ///  
        public IEnumerator GetEnumerator()
        { 
            return _elements.GetEnumerator(); 
        }
 
        #endregion Interface ICollection


        //----------------------------------------------------- 
        //
        //  Private Fields 
        // 
        //------------------------------------------------------
 
        #region Private Fields

        private AutomationElement[] _elements;
 
        #endregion Private Fields
    } 
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK