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
- SqlMethods.cs
- Base64Stream.cs
- WindowsListViewItemCheckBox.cs
- Lease.cs
- MessageEventSubscriptionService.cs
- CodeParameterDeclarationExpression.cs
- CqlGenerator.cs
- KeyValuePair.cs
- CallbackValidator.cs
- RelationshipNavigation.cs
- Animatable.cs
- XsltArgumentList.cs
- MatrixTransform3D.cs
- PointLightBase.cs
- ServicePointManager.cs
- App.cs
- Animatable.cs
- ValidatorAttribute.cs
- AutomationAttributeInfo.cs
- WaitHandleCannotBeOpenedException.cs
- MonikerHelper.cs
- CssClassPropertyAttribute.cs
- InternalPermissions.cs
- DrawItemEvent.cs
- DataSourceSelectArguments.cs
- DefaultSettingsSection.cs
- PointIndependentAnimationStorage.cs
- CodePageEncoding.cs
- GatewayIPAddressInformationCollection.cs
- SmtpMail.cs
- AsyncResult.cs
- MsmqHostedTransportManager.cs
- SyndicationDeserializer.cs
- HttpProfileGroupBase.cs
- MSAANativeProvider.cs
- SmiXetterAccessMap.cs
- AuthenticationService.cs
- SiteMapHierarchicalDataSourceView.cs
- TypefaceMap.cs
- StatusBarAutomationPeer.cs
- SiteMapProvider.cs
- ResXResourceReader.cs
- EntityParameter.cs
- APCustomTypeDescriptor.cs
- Parsers.cs
- TypeConverterAttribute.cs
- NodeLabelEditEvent.cs
- CodeArrayIndexerExpression.cs
- IntSecurity.cs
- Page.cs
- Set.cs
- HtmlInputPassword.cs
- PathParser.cs
- PersonalizableAttribute.cs
- ExecutionEngineException.cs
- ObjectDataSourceSelectingEventArgs.cs
- RequestCacheValidator.cs
- ConnectionManagementElementCollection.cs
- HtmlProps.cs
- UserControl.cs
- ArithmeticLiteral.cs
- MachineKey.cs
- NullableLongMinMaxAggregationOperator.cs
- HttpApplicationFactory.cs
- SQLMoney.cs
- ClonableStack.cs
- Semaphore.cs
- CssStyleCollection.cs
- MailDefinition.cs
- WebPartConnectionCollection.cs
- streamingZipPartStream.cs
- CommentEmitter.cs
- HostExecutionContextManager.cs
- HtmlElementCollection.cs
- InheritanceUI.cs
- ErrorEventArgs.cs
- SignerInfo.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- IFlowDocumentViewer.cs
- FormsAuthentication.cs
- arclist.cs
- ReferenceConverter.cs
- HttpCookiesSection.cs
- XmlnsDictionary.cs
- UnsettableComboBox.cs
- XmlMembersMapping.cs
- XmlRawWriter.cs
- XmlSerializerImportOptions.cs
- BuildProviderAppliesToAttribute.cs
- BindToObject.cs
- PersianCalendar.cs
- MailHeaderInfo.cs
- HttpResponseMessageProperty.cs
- MediaTimeline.cs
- LocationUpdates.cs
- JsonUriDataContract.cs
- AutomationAttributeInfo.cs
- DataChangedEventManager.cs
- BoundPropertyEntry.cs
- SrgsElementFactory.cs