public ListUpdateHelper(RecordClerk clerk, bool fWasAlreadySuppressed) { m_clerk = clerk; if (m_clerk != null) { m_fOriginalUpdatingList = m_clerk.m_list.UpdatingList; m_fOriginalListLoadingSuppressedState = fWasAlreadySuppressed; m_fOriginalSkipRecordNavigationState = m_clerk.m_skipShowRecord; m_fOriginalSuppressSaveOnChangeRecord = m_clerk.SuppressSaveOnChangeRecord; m_fOriginalLoadRequestedWhileSuppressed = m_clerk.RequestedLoadWhileSuppressed; // monitor whether ReloadList was requested during the life of this ListUpdateHelper m_clerk.m_list.RequestedLoadWhileSuppressed = false; m_originalUpdateHelper = m_clerk.UpdateHelper; // if we're already suppressing the list, we don't want to auto reload since // the one who is suppressing the list expects to be able to handle that later. // or if the parent clerk is suppressing, we should wait until the parent reloads. RecordClerk parentClerk = clerk.ParentClerk(); if (m_fOriginalListLoadingSuppressedState || parentClerk != null && parentClerk.ListLoadingSuppressed) { m_fTriggerPendingReloadOnDispose = false; } m_clerk.ListLoadingSuppressedNoSideEffects = true; m_clerk.UpdateHelper = this; } }