示例#1
0
 protected virtual void HandlePropertyEvents()
 {
     lock (_waitingLock)
     {
         _waitingForPropChangedDispatcher = false;
     }
     PropertyChangingEventArgs[] cArgs = _propChangingQueue.DequeueCurrentQueue();
     if (cArgs != null && PropertyChanging != null)
     {
         System.Diagnostics.Debug.WriteLine(string.Format("HandlePropertyEvents for {0} changing events.", cArgs.Length));
         foreach (PropertyChangingEventArgs arg in cArgs)
         {
             PropertyChanging(this, arg);
         }
     }
     PropertyChangedEventArgs[] args = _propChangedQueue.DequeueCurrentQueue();
     if (args != null && PropertyChanged != null)
     {
         System.Diagnostics.Debug.WriteLine(string.Format("HandlePropertyEvents for {0} changed events.", args.Length));
         foreach (PropertyChangedEventArgs arg in args)
         {
             PropertyChanged(this, arg);
         }
     }
 }
示例#2
0
 public T[] DequeueCurrentQueue()
 {
     lock (_dequeueLockObj)
     {
         if (_queueOut.Count == 0)
         {
             FlipQueues();
         }
         return(_queueOut.DequeueCurrentQueue());
     }
 }
 private void HandleItemChanging()
 {
     lock (_waitingLock)
     {
         _waitingForItemChangingDispatcher = false;
     }
     ItemPropertyChangedEventArgs <T>[] args = _itemChangingQueue.DequeueCurrentQueue();
     if (args != null)
     {
         System.Diagnostics.Debug.WriteLine(string.Format("HandleItemPropertyChanging for {0} events.", args.Length));
         foreach (ItemPropertyChangedEventArgs <T> arg in args)
         {
             ItemPropertyChanging(this, arg);
         }
     }
 }
        /*
         * private void HandleFullCollectionChanged()
         * {
         *  lock (_waitingLock)
         *  {
         *      _waitingForCollChangedDispatcher = false;
         *  }
         *  CollectionChanged(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
         * }
         */
        /*
         * private void HandleCollectionChanged()
         * {
         *  lock (_waitingLock)
         *  {
         *      _waitingForCollChangedDispatcher = false;
         *  }
         *  NotifyCollectionChangedEventArgs[] args = _collChangedQueue.DequeueCurrentQueue();
         *  if (args != null)
         *  {
         *      System.Diagnostics.Debug.WriteLine(string.Format("HandleCollectionChanged for {0} events.", args.Length));
         *      foreach (NotifyCollectionChangedEventArgs arg in args)
         *          CollectionChanged(this, arg);
         *  }
         * }
         */

        private void HandlePropertyChanged()
        {
            lock (_waitingLock)
            {
                _waitingForPropChangedDispatcher = false;
            }
            PropertyChangedEventArgs[] args = _propChangedQueue.DequeueCurrentQueue();
            if (args != null)
            {
                System.Diagnostics.Debug.WriteLine(string.Format("HandlePropertyChanged for {0} events.", args.Length));
                foreach (PropertyChangedEventArgs arg in args)
                {
                    PropertyChanged(this, arg);
                }
            }
        }