Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Base / MS / Internal / ComponentModel / PropertyChangeTracker.cs / 1 / PropertyChangeTracker.cs
namespace MS.Internal.ComponentModel { using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.Reflection; using System.Security.Permissions; using System.Windows; ////// A change tracking expression that is used to raise property change events. /// internal class PropertyChangeTracker : Expression { internal PropertyChangeTracker(DependencyObject obj, DependencyProperty property) : base(ExpressionMode.NonSharable | ExpressionMode.ForwardsInvalidations) { Debug.Assert(obj != null && property != null); _object = obj; _property = property; ChangeSources(_object, _property, new DependencySource[] { new DependencySource(obj, property) }); } internal override void OnPropertyInvalidation(DependencyObject d, DependencyPropertyChangedEventArgs args) { DependencyProperty dp = args.Property; if (_object == d && _property == dp && Changed != null) { Changed(_object, EventArgs.Empty); } } internal void Close() { _object = null; _property = null; ChangeSources(null, null, null); } internal bool CanClose { get { return Changed == null; } } internal EventHandler Changed; private DependencyObject _object; private DependencyProperty _property; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. namespace MS.Internal.ComponentModel { using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.Reflection; using System.Security.Permissions; using System.Windows; ////// A change tracking expression that is used to raise property change events. /// internal class PropertyChangeTracker : Expression { internal PropertyChangeTracker(DependencyObject obj, DependencyProperty property) : base(ExpressionMode.NonSharable | ExpressionMode.ForwardsInvalidations) { Debug.Assert(obj != null && property != null); _object = obj; _property = property; ChangeSources(_object, _property, new DependencySource[] { new DependencySource(obj, property) }); } internal override void OnPropertyInvalidation(DependencyObject d, DependencyPropertyChangedEventArgs args) { DependencyProperty dp = args.Property; if (_object == d && _property == dp && Changed != null) { Changed(_object, EventArgs.Empty); } } internal void Close() { _object = null; _property = null; ChangeSources(null, null, null); } internal bool CanClose { get { return Changed == null; } } internal EventHandler Changed; private DependencyObject _object; private DependencyProperty _property; } } // 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
- Point3DCollectionValueSerializer.cs
- ServiceAuthorizationManager.cs
- ValidationContext.cs
- HyperlinkAutomationPeer.cs
- DropSourceBehavior.cs
- UiaCoreApi.cs
- AnnotationComponentChooser.cs
- ThrowHelper.cs
- XPathNodeList.cs
- SqlDataSourceTableQuery.cs
- CategoryNameCollection.cs
- SchemaUtility.cs
- wmiutil.cs
- CorrelationResolver.cs
- WebResourceAttribute.cs
- Span.cs
- SafeNativeMemoryHandle.cs
- ReadOnlyKeyedCollection.cs
- DataTableMappingCollection.cs
- NamedPermissionSet.cs
- ParagraphResult.cs
- DocumentApplication.cs
- JsonReaderDelegator.cs
- ImmutableObjectAttribute.cs
- WebBrowserProgressChangedEventHandler.cs
- HMACSHA1.cs
- TabControlEvent.cs
- DateTimeUtil.cs
- TrustManagerPromptUI.cs
- CodeAccessSecurityEngine.cs
- CodeExpressionStatement.cs
- SchemaComplexType.cs
- RectangleHotSpot.cs
- BidOverLoads.cs
- Visual3D.cs
- sqlpipe.cs
- XmlParserContext.cs
- SQLBoolean.cs
- ProfessionalColors.cs
- RenderDataDrawingContext.cs
- StickyNoteAnnotations.cs
- uribuilder.cs
- Errors.cs
- DefaultWorkflowLoaderService.cs
- AndMessageFilter.cs
- WSHttpTransportSecurityElement.cs
- MulticastDelegate.cs
- QueryAccessibilityHelpEvent.cs
- ObjectDisposedException.cs
- XmlDocumentSchema.cs
- MetabaseReader.cs
- RecommendedAsConfigurableAttribute.cs
- ServiceDurableInstanceContextProvider.cs
- HttpPostedFile.cs
- GridPatternIdentifiers.cs
- MissingManifestResourceException.cs
- HandlerWithFactory.cs
- EmptyEnumerator.cs
- XPathAncestorIterator.cs
- MeasureItemEvent.cs
- SimpleApplicationHost.cs
- DriveNotFoundException.cs
- DataConnectionHelper.cs
- VideoDrawing.cs
- Queue.cs
- OrderedHashRepartitionStream.cs
- Converter.cs
- XmlAutoDetectWriter.cs
- AppDomain.cs
- SrgsToken.cs
- WebPartConnectionCollection.cs
- ProfilePropertyNameValidator.cs
- XmlSchemaException.cs
- TemplateNodeContextMenu.cs
- ImageEditor.cs
- ToolboxItem.cs
- FilteredDataSetHelper.cs
- ResetableIterator.cs
- TableRowCollection.cs
- ObjectListDataBindEventArgs.cs
- COM2IDispatchConverter.cs
- WebScriptMetadataMessageEncodingBindingElement.cs
- RequestQueryProcessor.cs
- SqlError.cs
- WindowsGraphicsCacheManager.cs
- KeyMatchBuilder.cs
- Semaphore.cs
- DataGridViewTextBoxColumn.cs
- UnauthorizedAccessException.cs
- ButtonBase.cs
- CollectionEditVerbManager.cs
- SingleObjectCollection.cs
- AnnotationAdorner.cs
- Odbc32.cs
- HtmlControlPersistable.cs
- PolygonHotSpot.cs
- ElementsClipboardData.cs
- DataGridViewCellFormattingEventArgs.cs
- AssemblyBuilderData.cs
- Context.cs