Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / MS / Internal / Annotations / AnnotationResourceCollection.cs / 1 / 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. //---------------------------------------------------------------------------- // // // 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
- ItemDragEvent.cs
- EditorPartCollection.cs
- ListArgumentProvider.cs
- ToolboxComponentsCreatingEventArgs.cs
- RecognitionEventArgs.cs
- CaseStatement.cs
- HitTestDrawingContextWalker.cs
- GraphicsContainer.cs
- XhtmlBasicPhoneCallAdapter.cs
- FontFaceLayoutInfo.cs
- ZipIOLocalFileDataDescriptor.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- RepeatBehaviorConverter.cs
- TrailingSpaceComparer.cs
- DataRecord.cs
- Vector3DConverter.cs
- ContentValidator.cs
- AspNetSynchronizationContext.cs
- CodeCompileUnit.cs
- BooleanConverter.cs
- EntityDataSourceState.cs
- UrlMappingCollection.cs
- FileLogRecordHeader.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- MessageHeaderException.cs
- TextEditorMouse.cs
- LabelLiteral.cs
- TableSectionStyle.cs
- StringValueSerializer.cs
- XmlRawWriter.cs
- DataControlButton.cs
- SimpleWebHandlerParser.cs
- GridErrorDlg.cs
- PagedDataSource.cs
- X509Extension.cs
- CompositeScriptReferenceEventArgs.cs
- Match.cs
- WebScriptMetadataMessageEncoderFactory.cs
- ErrorsHelper.cs
- DateBoldEvent.cs
- WeakReferenceEnumerator.cs
- TrackingParameters.cs
- TextServicesLoader.cs
- KeyValueConfigurationElement.cs
- ISessionStateStore.cs
- NumericUpDown.cs
- TimeZone.cs
- TileBrush.cs
- ObjectConverter.cs
- UndoEngine.cs
- _HelperAsyncResults.cs
- OSFeature.cs
- HostElement.cs
- KerberosSecurityTokenProvider.cs
- EventSinkActivityDesigner.cs
- WebPartTransformerCollection.cs
- PipelineModuleStepContainer.cs
- FileDetails.cs
- TabControl.cs
- SourceFilter.cs
- Trace.cs
- MatrixCamera.cs
- CompModHelpers.cs
- SortedSetDebugView.cs
- ControlAdapter.cs
- KnownBoxes.cs
- HtmlImage.cs
- DrawingAttributeSerializer.cs
- LastQueryOperator.cs
- propertytag.cs
- DataGridDesigner.cs
- XmlDeclaration.cs
- PipelineComponent.cs
- HMACSHA1.cs
- PolicyAssertionCollection.cs
- SQLMoneyStorage.cs
- NameValueCollection.cs
- SerialStream.cs
- ItemsControl.cs
- PerformanceCounterManager.cs
- DataGridAddNewRow.cs
- ObjectQueryState.cs
- IntPtr.cs
- ImmComposition.cs
- ExecutionScope.cs
- Application.cs
- HtmlElementErrorEventArgs.cs
- Win32Native.cs
- BaseCollection.cs
- ObjectResult.cs
- InputProviderSite.cs
- ProgressBarBrushConverter.cs
- Enumerable.cs
- FolderBrowserDialog.cs
- InputMethodStateChangeEventArgs.cs
- VirtualizedItemPattern.cs
- BindingValueChangedEventArgs.cs
- Rectangle.cs
- GridView.cs
- XmlSchemaGroupRef.cs