Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / DrawingCollection.cs / 1305600 / DrawingCollection.cs
//---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Description: This file contains non-generated DrawingCollection // methods. // // History: // // 2005/03/18 : timothyc - Created it. // //--------------------------------------------------------------------------- using System.Collections; using System.Collections.Generic; using System.Windows.Media.Animation; using System.Windows.Markup; namespace System.Windows.Media { ////// Collection of Drawing objects /// public sealed partial class DrawingCollection : Animatable, IList, IList{ /// /// Appends the entire input DrawingCollection, while only firing a single set of /// public events. If an exception is thrown from the public events, the /// Append operation is rolled back. /// internal void TransactionalAppend(DrawingCollection collectionToAppend) { // Use appendCount to avoid inconsistencies & runaway loops when // this == collectionToAppend, and to ensure collectionToAppend.Count // is only evaluated once. int appendCount = collectionToAppend.Count; // First, append the collection for(int i = 0; i < appendCount; i++) { AddWithoutFiringPublicEvents(collectionToAppend.Internal_GetItem(i)); } // Fire the public Changed event after all the elements have been added. // // If an exception is thrown, then the Append operation is rolled-back without // firing additional events. try { FireChanged(); } catch (Exception) { // Compute the number of elements that existed before the append int beforeAppendCount = Count - appendCount; // Remove the appended elements in reverse order without firing Changed events. for ( int i = Count - 1; // Start at the current last index i >= beforeAppendCount; // Until the previous last index i-- // Move to the preceding index ) { RemoveAtWithoutFiringPublicEvents(i); } // Avoid firing WritePostscript events (e.g., OnChanged) after rolling-back // the current operation. // // This ensures that only a single set of events is fired for both exceptional & // typical cases, and it's likely that firing events would cause another exception. throw; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SerializationInfoEnumerator.cs
- SqlRemoveConstantOrderBy.cs
- SecurityContext.cs
- _HeaderInfoTable.cs
- CollectionsUtil.cs
- SpotLight.cs
- ActiveXContainer.cs
- TextTabProperties.cs
- OperationCanceledException.cs
- ScrollContentPresenter.cs
- XmlDigitalSignatureProcessor.cs
- ClientUtils.cs
- DBCommandBuilder.cs
- MetadataItem_Static.cs
- SafeNativeMethods.cs
- ListDataHelper.cs
- AccessDataSource.cs
- RecipientInfo.cs
- ObjectTypeMapping.cs
- PersistChildrenAttribute.cs
- GridEntry.cs
- SqlDataAdapter.cs
- SafeNativeMethods.cs
- TabControlCancelEvent.cs
- SqlDataSource.cs
- KnownColorTable.cs
- EmbeddedMailObject.cs
- Stacktrace.cs
- EditorBrowsableAttribute.cs
- DataGridViewLinkColumn.cs
- XamlFrame.cs
- SqlResolver.cs
- Attributes.cs
- XmlDataImplementation.cs
- MetadataUtil.cs
- QualifiedCellIdBoolean.cs
- ContentPresenter.cs
- FastEncoder.cs
- PointLight.cs
- HWStack.cs
- RemoteWebConfigurationHostStream.cs
- EditorOptionAttribute.cs
- Figure.cs
- CodeDomConfigurationHandler.cs
- StreamResourceInfo.cs
- GradientStop.cs
- DeclarativeCatalogPart.cs
- ThreadStartException.cs
- WeakReferenceEnumerator.cs
- SqlRemoveConstantOrderBy.cs
- CharStorage.cs
- SortQueryOperator.cs
- XmlEntity.cs
- GreenMethods.cs
- WindowsTokenRoleProvider.cs
- ControlBuilder.cs
- HandlerFactoryWrapper.cs
- formatter.cs
- OdbcUtils.cs
- Simplifier.cs
- BitmapEffectGroup.cs
- ImmutablePropertyDescriptorGridEntry.cs
- CompModSwitches.cs
- ReadWriteControlDesigner.cs
- BitmapEffectDrawingContent.cs
- SafeViewOfFileHandle.cs
- MessageAction.cs
- GridToolTip.cs
- Vector3DAnimationBase.cs
- Debug.cs
- BindingExpression.cs
- Encoder.cs
- DefaultValueTypeConverter.cs
- SqlCommandSet.cs
- CredentialSelector.cs
- UnsafeNativeMethodsMilCoreApi.cs
- UndoEngine.cs
- Menu.cs
- GlyphManager.cs
- XmlHelper.cs
- Rotation3D.cs
- BitConverter.cs
- ListViewItem.cs
- UIElementParagraph.cs
- SplineKeyFrames.cs
- DiscoveryReferences.cs
- PointLight.cs
- XmlSchemaComplexContentExtension.cs
- ExpressionLink.cs
- ProcessInfo.cs
- ToolStripGripRenderEventArgs.cs
- PermissionSetEnumerator.cs
- AspNetCompatibilityRequirementsAttribute.cs
- RenderDataDrawingContext.cs
- CodeIterationStatement.cs
- HttpModuleAction.cs
- PropertyCondition.cs
- SqlUserDefinedAggregateAttribute.cs
- Regex.cs
- CoTaskMemUnicodeSafeHandle.cs