コード例 #1
0
        void DoneUpdate()
        {
            int oldMode = _updateMode;

            _updateMode = 0;

            if (_updateProps != 0)
            {
                RaisePropertyItems props = _updateProps;
                _updateProps = 0;
                RaisePropertyChanged(props);
            }

            if (oldMode == 1)
            {
                CollectionChangedEventArgs <TItem> c = _change;
                _change = null;

                if (c != null)
                {
                    RaiseCollectionChanged(c);
                }
                /* else NOOP batch */
            }
            else
            {
                RaiseCollectionChanged(new CollectionChangedEventArgs <TItem>(CollectionChange.Reset));
            }
        }
コード例 #2
0
 void RaisePropertyChanged(RaisePropertyItems which)
 {
     if (_updateMode == 0)
     {
         if ((which & RaisePropertyItems.Count) != 0)
         {
             OnPropertyChanged(new PropertyChangedEventArgs("Count"));
         }
         if ((which & RaisePropertyItems.Items) != 0)
         {
             OnPropertyChanged(new PropertyChangedEventArgs("Item[]"));
         }
     }
     else
     {
         _updateProps |= which;
     }
 }