Example #1
0
 internal XmlElementListListener(XmlDocument doc, XmlElementList elemList)
 {
     _doc               = doc;
     _elemList          = new WeakReference(elemList);
     _nodeChangeHandler = new XmlNodeChangedEventHandler(this.OnListChanged);
     doc.NodeInserted  += _nodeChangeHandler;
     doc.NodeRemoved   += _nodeChangeHandler;
 }
Example #2
0
 private void OnListChanged(object sender, XmlNodeChangedEventArgs args)
 {
     lock (this)
     {
         if (_elemList != null)
         {
             XmlElementList el = (XmlElementList)_elemList.Target;
             if (null != el)
             {
                 el.ConcurrencyCheck(args);
             }
             else
             {
                 _doc.NodeInserted -= _nodeChangeHandler;
                 _doc.NodeRemoved  -= _nodeChangeHandler;
                 _elemList          = null;
             }
         }
     }
 }
Example #3
0
 public XmlEmptyElementListEnumerator(XmlElementList list)
 {
 }
Example #4
0
        private int _changeCount; //save the total number that the dom tree has been changed ( insertion and deletetion ) when this enumerator is created

        public XmlElementListEnumerator(XmlElementList list)
        {
            _list        = list;
            _curElem     = null;
            _changeCount = list.ChangeCount;
        }