Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / MS / Internal / ComponentModel / PropertyChangeTracker.cs / 1305600 / 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
- LockedHandleGlyph.cs
- TypeConverter.cs
- ColorDialog.cs
- ErrorReporting.cs
- TextControlDesigner.cs
- PointConverter.cs
- ServicesUtilities.cs
- WebPartZone.cs
- MonthChangedEventArgs.cs
- ExpandableObjectConverter.cs
- CallbackValidator.cs
- AsyncOperation.cs
- MarginCollapsingState.cs
- SyndicationFeed.cs
- DesignSurfaceEvent.cs
- TextRenderer.cs
- DbParameterCollectionHelper.cs
- TagPrefixInfo.cs
- WebServiceTypeData.cs
- MarkedHighlightComponent.cs
- ImageSource.cs
- GridView.cs
- AssemblyResourceLoader.cs
- ALinqExpressionVisitor.cs
- BadImageFormatException.cs
- WebPartVerb.cs
- BinaryWriter.cs
- EllipseGeometry.cs
- XmlUtil.cs
- CultureSpecificStringDictionary.cs
- HtmlProps.cs
- Int32Rect.cs
- SmiContextFactory.cs
- MessageQueuePermission.cs
- ExpressionLexer.cs
- ReferentialConstraintRoleElement.cs
- WebReference.cs
- WindowsStartMenu.cs
- GACMembershipCondition.cs
- Control.cs
- EmbossBitmapEffect.cs
- AppearanceEditorPart.cs
- CaseStatement.cs
- PointCollection.cs
- SymbolResolver.cs
- CurrentChangingEventArgs.cs
- ExternalException.cs
- Shape.cs
- WebRequestModulesSection.cs
- EdmProviderManifest.cs
- SmtpMail.cs
- AnnouncementDispatcherAsyncResult.cs
- PenContext.cs
- CategoryGridEntry.cs
- FrameAutomationPeer.cs
- SpecialNameAttribute.cs
- DateTimeUtil.cs
- UnknownExceptionActionHelper.cs
- SerializerWriterEventHandlers.cs
- RecordManager.cs
- DesignerTextBoxAdapter.cs
- ManipulationCompletedEventArgs.cs
- GridViewDesigner.cs
- BindingGroup.cs
- WebPartUtil.cs
- RequestStatusBarUpdateEventArgs.cs
- XslVisitor.cs
- DataChangedEventManager.cs
- UIElement3DAutomationPeer.cs
- DynamicQueryStringParameter.cs
- GridViewColumnCollectionChangedEventArgs.cs
- DebugView.cs
- SQLSingleStorage.cs
- ListViewItem.cs
- ExternalException.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- MenuItemBindingCollection.cs
- Color.cs
- PropertyDescriptorComparer.cs
- MimeTypeMapper.cs
- XmlSerializationGeneratedCode.cs
- Underline.cs
- AmbientEnvironment.cs
- XMLSyntaxException.cs
- SqlSelectClauseBuilder.cs
- Rect.cs
- BulletedListEventArgs.cs
- Geometry.cs
- PhonemeConverter.cs
- serverconfig.cs
- ExtensionWindowResizeGrip.cs
- InnerItemCollectionView.cs
- BrowserTree.cs
- DbgUtil.cs
- EntityCommandExecutionException.cs
- WriterOutput.cs
- PersonalizationStateInfoCollection.cs
- LocatorPartList.cs
- MetadataArtifactLoaderFile.cs
- MsmqMessage.cs