Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- wgx_exports.cs
- MissingMethodException.cs
- ReliableMessagingVersion.cs
- DataGridAddNewRow.cs
- GridViewUpdatedEventArgs.cs
- DeriveBytes.cs
- WebEvents.cs
- SymbolType.cs
- PanelStyle.cs
- TextContainerChangedEventArgs.cs
- Event.cs
- CornerRadiusConverter.cs
- WebBrowserNavigatedEventHandler.cs
- DynamicUpdateCommand.cs
- XmlBinaryWriter.cs
- SoapCodeExporter.cs
- TextLine.cs
- WebPartVerbCollection.cs
- XmlSchemaComplexType.cs
- ComponentCache.cs
- SecurityVerifiedMessage.cs
- Literal.cs
- Speller.cs
- CreateUserWizard.cs
- BaseCodePageEncoding.cs
- TextBlockAutomationPeer.cs
- DispatchChannelSink.cs
- RoutedPropertyChangedEventArgs.cs
- SchemaMerger.cs
- ImageListStreamer.cs
- DataGridViewRow.cs
- DataSourceUtil.cs
- TableRowCollection.cs
- SystemWebExtensionsSectionGroup.cs
- DesignerDataSchemaClass.cs
- dataobject.cs
- ClusterSafeNativeMethods.cs
- SqlUserDefinedTypeAttribute.cs
- LassoHelper.cs
- TranslateTransform3D.cs
- SamlSubjectStatement.cs
- storepermission.cs
- PixelShader.cs
- Separator.cs
- ToolboxBitmapAttribute.cs
- SystemPens.cs
- ValidatorCompatibilityHelper.cs
- DictionaryTraceRecord.cs
- VisualBasicImportReference.cs
- WorkBatch.cs
- RichTextBoxAutomationPeer.cs
- CellConstantDomain.cs
- ToolStripStatusLabel.cs
- PageHandlerFactory.cs
- Activator.cs
- WbmpConverter.cs
- OdbcCommand.cs
- QueryServiceConfigHandle.cs
- FlowLayoutSettings.cs
- ViewValidator.cs
- WebBrowser.cs
- ToolbarAUtomationPeer.cs
- ContentType.cs
- DocumentPage.cs
- PostBackOptions.cs
- ObjectListComponentEditor.cs
- StylusCaptureWithinProperty.cs
- OleDbConnection.cs
- SplitterPanel.cs
- ExpressionEditorAttribute.cs
- NavigationWindow.cs
- ListArgumentProvider.cs
- SmiMetaData.cs
- AudioLevelUpdatedEventArgs.cs
- InvokePatternIdentifiers.cs
- TreeNodeConverter.cs
- DataGridViewCellParsingEventArgs.cs
- ValueType.cs
- TextPointerBase.cs
- FieldBuilder.cs
- PriorityBindingExpression.cs
- DataGridViewRowsRemovedEventArgs.cs
- ImageCreator.cs
- sqlmetadatafactory.cs
- PlanCompiler.cs
- ResizeGrip.cs
- XmlBaseReader.cs
- TextPointer.cs
- SerializableAuthorizationContext.cs
- CollectionViewGroup.cs
- Mapping.cs
- TextTreeText.cs
- ProfilePropertyNameValidator.cs
- RemotingAttributes.cs
- Metafile.cs
- BufferBuilder.cs
- KerberosReceiverSecurityToken.cs
- InfoCardX509Validator.cs
- ScrollChrome.cs
- BasicDesignerLoader.cs