Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / Annotations / AnnotationResourceCollection.cs / 1305600 / AnnotationResourceCollection.cs
//---------------------------------------------------------------------------- // //// Copyright (C) 2003 by Microsoft Corporation. All rights reserved. // // // Description: Subclass of AnnotationObservableCollectionwhich has slightly different // eventing behavior for ClearItems and SetItem methods. This class // is used specifically for AnnotationResources. // // History: // 03/10/2005 : rruiz - created // //--------------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Collections.Specialized; using System.ComponentModel; using System.Diagnostics; using System.Windows.Annotations; using System.Windows.Data; namespace MS.Internal.Annotations { /// /// Subclass of AnnotationObservableCollection which has slightly different /// eventing behavior for ClearItems and SetItem methods. This class /// is used specifically for AnnotationResources. /// internal sealed class AnnotationResourceCollection : AnnotationObservableCollection{ //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors /// /// Initializes a new instance of AnnotationResourceCollection that is empty and has default initial capacity. /// public AnnotationResourceCollection() : base() { } #endregion Constructors //------------------------------------------------------ // // Public Events // //----------------------------------------------------- #region Public Events ////// Event fired when an item in the collection changes (fires a PropertyChanged event). /// public event PropertyChangedEventHandler ItemChanged; #endregion Public Events //------------------------------------------------------ // // Protected Methods // //------------------------------------------------------ #region Protected Methods ////// Override this method and provide a different set of events /// when items are cleared from the collection. Specifically, /// fire a Remove event for each item in the collection. /// protected override void ProtectedClearItems() { // We want to fire for each item in the list Listlist = new List (this); Items.Clear(); // directly clear Collection inner Items collection OnPropertyChanged(CountString); OnPropertyChanged(IndexerName); OnCollectionCleared(list); } /// /// Override this method and provide a different set of events /// when an item is set on a given index in this collection. /// Specifically, fire a both a Remove and Add event (as the /// grand-parent class ObservableCollection does). /// /// index of item to set /// item to set at that index protected override void ProtectedSetItem(int index, AnnotationResource item) { // Use the standard built in events (one for item removed and one for item added) ObservableCollectionSetItem(index, item); // Calls raw ObservableCollection method } #endregion Protected Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods // fire an event for each item removed from the collection void OnCollectionCleared(IEnumerablelist) { foreach(object item in list) { OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, item, 0)); } } private void OnPropertyChanged(string propertyName) { OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); } // raise CollectionChanged event to any listeners protected override void OnItemPropertyChanged(object sender, PropertyChangedEventArgs e) { if (ItemChanged != null) { ItemChanged(sender, e); } } #endregion Private Methods } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlWriterTraceListener.cs
- FixedLineResult.cs
- COM2Properties.cs
- AccessedThroughPropertyAttribute.cs
- CommandDevice.cs
- TextCollapsingProperties.cs
- Point.cs
- figurelengthconverter.cs
- WebPartDisplayModeEventArgs.cs
- CardSpaceException.cs
- ContextBase.cs
- MetadataItemCollectionFactory.cs
- PageAdapter.cs
- SelectedDatesCollection.cs
- ListBox.cs
- BinHexDecoder.cs
- MultiplexingDispatchMessageFormatter.cs
- WindowsAuthenticationModule.cs
- Mouse.cs
- ViewGenResults.cs
- XmlDataSourceView.cs
- AlignmentXValidation.cs
- TextCollapsingProperties.cs
- XmlHelper.cs
- RegexRunnerFactory.cs
- RelationshipDetailsCollection.cs
- TransactedBatchContext.cs
- AttachedAnnotationChangedEventArgs.cs
- Tablet.cs
- UnsafeNativeMethods.cs
- SqlUtils.cs
- HttpCachePolicy.cs
- SmtpCommands.cs
- DmlSqlGenerator.cs
- WindowsToolbarItemAsMenuItem.cs
- SystemInfo.cs
- MemoryMappedView.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- EntityContainerEmitter.cs
- BinaryFormatter.cs
- TdsParserSafeHandles.cs
- BindingContext.cs
- PlainXmlWriter.cs
- InputScopeConverter.cs
- XmlFormatExtensionAttribute.cs
- SequenceDesignerAccessibleObject.cs
- DataRecordInfo.cs
- RemotingConfigParser.cs
- TextSchema.cs
- XmlToDatasetMap.cs
- SecurityHelper.cs
- DocumentViewerAutomationPeer.cs
- TraceSource.cs
- ButtonRenderer.cs
- Fx.cs
- APCustomTypeDescriptor.cs
- XmlTextAttribute.cs
- IndexedWhereQueryOperator.cs
- SqlIdentifier.cs
- Expander.cs
- EntityContainerEmitter.cs
- CodeTypeReferenceExpression.cs
- DefaultIfEmptyQueryOperator.cs
- GroupBoxAutomationPeer.cs
- SynchronizationLockException.cs
- SmtpMail.cs
- ConfigXmlWhitespace.cs
- ObjectListCommandCollection.cs
- SmiMetaDataProperty.cs
- TransformerInfo.cs
- NavigateEvent.cs
- CollectionExtensions.cs
- ApplicationException.cs
- ResXResourceReader.cs
- InputGestureCollection.cs
- ScrollContentPresenter.cs
- TempFiles.cs
- Stack.cs
- StaticSiteMapProvider.cs
- EUCJPEncoding.cs
- XmlObjectSerializer.cs
- HierarchicalDataSourceConverter.cs
- Automation.cs
- VarRefManager.cs
- DynamicUpdateCommand.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- WorkflowItemPresenter.cs
- TextBlock.cs
- TextElementEnumerator.cs
- IntSecurity.cs
- ToolStripMenuItem.cs
- DataSourceCache.cs
- ColumnResult.cs
- Int32EqualityComparer.cs
- ToggleButton.cs
- DataShape.cs
- EntityDataSourceChangingEventArgs.cs
- UpdateCompiler.cs
- List.cs
- WebPartHeaderCloseVerb.cs