Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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 : [....] - 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
- autovalidator.cs
- SqlUtils.cs
- SymbolType.cs
- DesignerVerb.cs
- ConnectivityStatus.cs
- WindowsListView.cs
- DrawingDrawingContext.cs
- X509UI.cs
- SystemIPAddressInformation.cs
- TriggerCollection.cs
- TreeViewItemAutomationPeer.cs
- MouseBinding.cs
- ToolboxItemSnapLineBehavior.cs
- WebControlsSection.cs
- DynamicResourceExtension.cs
- DescendentsWalker.cs
- HelpExampleGenerator.cs
- RenderDataDrawingContext.cs
- HtmlControlDesigner.cs
- SafeLibraryHandle.cs
- Compiler.cs
- WebPartHelpVerb.cs
- ZipIOExtraFieldPaddingElement.cs
- UIElementCollection.cs
- DBAsyncResult.cs
- DefaultValueAttribute.cs
- HttpStaticObjectsCollectionWrapper.cs
- PenContext.cs
- Command.cs
- SecurityPolicySection.cs
- DataControlFieldCell.cs
- EmissiveMaterial.cs
- NextPreviousPagerField.cs
- PopOutPanel.cs
- DashStyles.cs
- BaseDataBoundControlDesigner.cs
- XPathNodeIterator.cs
- TriggerActionCollection.cs
- ManipulationCompletedEventArgs.cs
- XhtmlConformanceSection.cs
- FontDialog.cs
- MetadataUtilsSmi.cs
- DynamicFilter.cs
- WindowExtensionMethods.cs
- BitmapFrameEncode.cs
- BypassElement.cs
- UrlMappingCollection.cs
- Rotation3DKeyFrameCollection.cs
- CommunicationException.cs
- ToolTip.cs
- LabelEditEvent.cs
- CheckBox.cs
- ChtmlImageAdapter.cs
- InstanceOwnerException.cs
- CustomErrorsSectionWrapper.cs
- QilCloneVisitor.cs
- ControlValuePropertyAttribute.cs
- ProviderConnectionPointCollection.cs
- PropertyStore.cs
- BindingBase.cs
- SymbolType.cs
- EntityProviderFactory.cs
- DataGridViewRowConverter.cs
- HttpModulesSection.cs
- LineBreak.cs
- EventHandlerList.cs
- PersonalizableAttribute.cs
- RowVisual.cs
- Common.cs
- X509Chain.cs
- XmlSiteMapProvider.cs
- AccessibilityHelperForVista.cs
- AdapterDictionary.cs
- HelpProvider.cs
- UnsafeNativeMethods.cs
- XmlUrlResolver.cs
- RoutedEventConverter.cs
- BindStream.cs
- SubclassTypeValidatorAttribute.cs
- GeneralTransform3DGroup.cs
- MainMenu.cs
- WindowsPen.cs
- DockProviderWrapper.cs
- ADMembershipUser.cs
- ConnectionPoolManager.cs
- BaseCodePageEncoding.cs
- GridPatternIdentifiers.cs
- Variable.cs
- WorkflowServiceHostFactory.cs
- TextElement.cs
- BoundColumn.cs
- ChooseAction.cs
- HashMembershipCondition.cs
- DateTimeUtil.cs
- XmlHelper.cs
- ApplicationGesture.cs
- Splitter.cs
- DrawingContextDrawingContextWalker.cs
- Size3D.cs
- LazyTextWriterCreator.cs