protected DefaultDeckTraversalModel(Guid id, DeckModel deck, EntryFilterDelegate filter) : base(id, deck) { this.m_HandleEntriesChangedHelperDelegate = new MethodInvoker(this.HandleEntriesChangedHelper); this.m_HandleEntriesChangedCallbackDelegate = new AsyncCallback(this.HandleEntriesChangedCallback); this.m_AbsCurrentSlideIndex = -1; this.m_Parents = new Stack(); this.m_Filter = filter; this.Deck.TableOfContents.Changed["Entries"].Add(new PropertyEventHandler(this.HandleEntriesChanged)); using (Synchronizer.Lock(this.SyncRoot)) { using (Synchronizer.Lock(this.Deck.TableOfContents.SyncRoot)) { this.Reset(); } } this.HandleEntriesChanged(this.Deck.TableOfContents, null); }