DocumentReferenceCollection.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 / Framework / System / Windows / Documents / DocumentReferenceCollection.cs / 1305600 / DocumentReferenceCollection.cs

                            //---------------------------------------------------------------------------- 
// 
//      Copyright (C) 2004 by Microsoft Corporation.  All rights reserved.
// 
// 
// Description:
//      Implements the DocumentReferenceCollection as holder for a collection 
//      of DocumentReference 
//
// History: 
//      05/07/2004 - Zhenbin Xu (ZhenbinX) - Created.
//
//
//--------------------------------------------------------------------------- 
namespace System.Windows.Documents
{ 
    using System; 
    using System.Collections.Generic;
    using System.Collections.Specialized; 
    using System.Diagnostics;


    //===================================================================== 
    /// 
    /// DocumentReferenceCollection is an ordered collection of DocumentReference 
    ///  
    [CLSCompliant(false)]
    public sealed class DocumentReferenceCollection : IEnumerable, INotifyCollectionChanged 
    {

        //-------------------------------------------------------------------
        // 
        // Connstructors
        // 
        //---------------------------------------------------------------------- 

        #region Constructors 
        internal DocumentReferenceCollection()
        {
        }
        #endregion Constructors 

        //------------------------------------------------------------------- 
        // 
        // Public Methods
        // 
        //----------------------------------------------------------------------
        #region Public Methods

        #region IEnumerable 
        /// 
        ///  
        ///  
        public IEnumerator GetEnumerator()
        { 
            return _InternalList.GetEnumerator();
        }

 
 	 System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        { 
            return ((IEnumerable)this).GetEnumerator(); 
        }
 

        #endregion IEnumerable

        /// 
        ///
        /// 
        public void Add(DocumentReference item) 
        {
            int count = _InternalList.Count; 

            _InternalList.Add(item);

            OnCollectionChanged(NotifyCollectionChangedAction.Add, item, count); 
        }
 
        ///  
        /// Passes in document reference array to be copied
        ///  
        public void CopyTo(DocumentReference[] array, int arrayIndex)
        {
            _InternalList.CopyTo(array, arrayIndex);
        } 

        #endregion Public Methods 
 
        #region Public Properties
 
        /// 
        /// Count of Document References in collection
        /// 
        public int Count 
        {
            get 
            { 
                return _InternalList.Count;
            } 
        }

        /// 
        ///  
        /// 
        public DocumentReference this[int index] 
        { 
            get
            { 
                return _InternalList[index];
            }
        }
 

 
 
        #endregion Public Properties
 
        //--------------------------------------------------------------------
        //
        // Public Events
        // 
        //---------------------------------------------------------------------
 
        #region Public Event 

        ///  
        /// Occurs when the collection changes, either by adding or removing an item.
        /// 
        /// 
        /// see  
        /// 
        public event NotifyCollectionChangedEventHandler CollectionChanged; 
        #endregion Public Event 

        //-------------------------------------------------------------------- 
        //
        // private Properties
        //
        //--------------------------------------------------------------------- 

        #region Private Properties 
 
        // Aggregated IList
        private IList _InternalList 
        {
            get
            {
                if (_internalList == null) 
                {
                    _internalList = new List(); 
                } 
                return _internalList;
            } 
        }
        #endregion Private Properties

        #region Private Methods 

        //------------------------------------------------------------------- 
        // 
        // Private Methods
        // 
        //---------------------------------------------------------------------

        // fire CollectionChanged event to any listeners
        private void OnCollectionChanged(NotifyCollectionChangedAction action, object item, int index) 
        {
            if (CollectionChanged != null) 
            { 
                NotifyCollectionChangedEventArgs args;
                args = new NotifyCollectionChangedEventArgs(action, item, index); 

                CollectionChanged(this, args);
            }
        } 

        #endregion Private Methods 
 
        //--------------------------------------------------------------------
        // 
        // Private Fields
        //
        //---------------------------------------------------------------------
 
        #region Private Fields
        private List  _internalList; 
        #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