Пример #1
0
        public void Combine(DeferredOperationManager sourceDeferredOperationManager)
        {
            lock (this)
            {
                this.RefreshPending = this.RefreshPending || sourceDeferredOperationManager.RefreshPending;
                this.RegroupPending = this.RegroupPending || sourceDeferredOperationManager.RegroupPending;
                this.ResortPending  = this.ResortPending || sourceDeferredOperationManager.ResortPending;
                this.RefreshDistincValuesPending = this.RefreshDistincValuesPending || sourceDeferredOperationManager.RefreshDistincValuesPending;
                this.RefreshDistincValuesWithFilteredItemChangedPending = this.RefreshDistincValuesWithFilteredItemChangedPending || sourceDeferredOperationManager.RefreshDistincValuesWithFilteredItemChangedPending;

                if (this.RefreshPending)
                {
                    m_deferredOperations.Clear();
                    return;
                }

                List <DeferredOperation> sourceOperations = sourceDeferredOperationManager.m_deferredOperations;

                if (sourceOperations.Count == 0)
                {
                    return;
                }

                m_deferredOperations.InsertRange(0, sourceOperations);
            }
        }
    private DataGridCollectionViewBase()
      : base( new object[ 0 ] )
    {

      this.PreConstruct();

      m_distinctValues = new DistinctValuesDictionary( this );
      m_autoFilterValues = new ReadOnlyDictionary<string, IList>();
      m_autoFilteredDataGridItemProperties = new ObservableCollection<DataGridItemPropertyBase>();

      m_filteredItemProperties = new List<DataGridItemPropertyBase>();
      m_readOnlyFilteredItemProperties = new ReadOnlyCollection<DataGridItemPropertyBase>( m_filteredItemProperties );

      // The constructor used for detail creation will rectify the m_rootDataGridCollectionViewBase later on.
      m_rootDataGridCollectionViewBase = this;

      m_deferredOperationManager = new DeferredOperationManager( this, this.Dispatcher, true );
    }
    private void AddDeferredOperationForAddNew( DeferredOperation deferredOperation )
    {
      if( m_deferredAddNewOperationManager == null )
        m_deferredAddNewOperationManager = new DeferredOperationManager( this, null, false );

      m_deferredAddNewOperationManager.Add( deferredOperation );
    }
    public void Combine( DeferredOperationManager sourceDeferredOperationManager )
    {
      lock( this )
      {
        this.RefreshPending |= sourceDeferredOperationManager.RefreshPending;
        this.RegroupPending |= sourceDeferredOperationManager.RegroupPending;
        this.ResortPending |= sourceDeferredOperationManager.ResortPending;

        this.RefreshDistincValuesPending |= sourceDeferredOperationManager.RefreshDistincValuesPending;

        this.RefreshDistincValuesWithFilteredItemChangedPending |=
          sourceDeferredOperationManager.RefreshDistincValuesWithFilteredItemChangedPending;

        if( this.RefreshPending )
        {
          m_deferredOperations = null;
          return;
        }

        List<DeferredOperation> sourceOperations = sourceDeferredOperationManager.m_deferredOperations;

        if( ( sourceOperations == null ) || ( sourceOperations.Count == 0 ) )
          return;

        if( m_deferredOperations == null )
          m_deferredOperations = new List<DeferredOperation>();

        m_deferredOperations.InsertRange( 0, sourceOperations );
      }
    }