Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- EncodingNLS.cs
- DataGridViewColumnTypePicker.cs
- DataGridColumn.cs
- HitTestFilterBehavior.cs
- EditorPartCollection.cs
- SecurityPolicySection.cs
- MulticastOption.cs
- SelectionPatternIdentifiers.cs
- WebResponse.cs
- CacheMemory.cs
- handlecollector.cs
- ForeignConstraint.cs
- EdmToObjectNamespaceMap.cs
- SqlDataReaderSmi.cs
- Rotation3D.cs
- MobileControlBuilder.cs
- BinaryNode.cs
- EventSinkHelperWriter.cs
- AttachedAnnotation.cs
- ProtectedConfiguration.cs
- ProcessThreadCollection.cs
- DocumentSchemaValidator.cs
- RSACryptoServiceProvider.cs
- Constraint.cs
- GridEntryCollection.cs
- Composition.cs
- PropertyEntry.cs
- EtwTrace.cs
- DashStyles.cs
- Gdiplus.cs
- XPathConvert.cs
- SmtpDigestAuthenticationModule.cs
- WebPartDescriptionCollection.cs
- RangeValueProviderWrapper.cs
- NavigateUrlConverter.cs
- PingReply.cs
- TcpProcessProtocolHandler.cs
- DataListItem.cs
- TabControlEvent.cs
- HostedImpersonationContext.cs
- InternalsVisibleToAttribute.cs
- ISFTagAndGuidCache.cs
- ConnectionManagementElementCollection.cs
- SQlBooleanStorage.cs
- DelayDesigner.cs
- _ChunkParse.cs
- PanelStyle.cs
- IntPtr.cs
- EntityDataSourceDesigner.cs
- UserNamePasswordClientCredential.cs
- TransformGroup.cs
- TextMarkerSource.cs
- JsonServiceDocumentSerializer.cs
- ReadOnlyActivityGlyph.cs
- MaterialCollection.cs
- SchemaObjectWriter.cs
- RemotingSurrogateSelector.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- FixUp.cs
- Error.cs
- HierarchicalDataBoundControl.cs
- WebBrowserDocumentCompletedEventHandler.cs
- HelpOperationInvoker.cs
- PageVisual.cs
- TabPanel.cs
- WindowsIdentity.cs
- basenumberconverter.cs
- CreatingCookieEventArgs.cs
- SchemaCollectionCompiler.cs
- ProxyHelper.cs
- ListenerElementsCollection.cs
- CollectionAdapters.cs
- TraceEventCache.cs
- QilVisitor.cs
- DataGridItemCollection.cs
- UnicodeEncoding.cs
- SelectingProviderEventArgs.cs
- IIS7UserPrincipal.cs
- InstanceKeyNotReadyException.cs
- DataShape.cs
- PolyQuadraticBezierSegment.cs
- DataConnectionHelper.cs
- BatchServiceHost.cs
- RouteValueExpressionBuilder.cs
- ErrorCodes.cs
- DataGridViewRowsAddedEventArgs.cs
- BitmapEffectCollection.cs
- TreeNodeCollection.cs
- InvalidWMPVersionException.cs
- MultiPageTextView.cs
- NavigationService.cs
- NoClickablePointException.cs
- XmlQueryRuntime.cs
- UrlPropertyAttribute.cs
- SoapAttributeAttribute.cs
- ScriptResourceInfo.cs
- CodeDirectoryCompiler.cs
- MemberDomainMap.cs
- NamespaceQuery.cs
- ExpressionConverter.cs