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
- FontUnitConverter.cs
- Renderer.cs
- UtilityExtension.cs
- PackageDocument.cs
- UTF7Encoding.cs
- Size3DConverter.cs
- CharConverter.cs
- DynamicResourceExtension.cs
- ActivityTrace.cs
- SqlUserDefinedAggregateAttribute.cs
- DataBindEngine.cs
- SetIndexBinder.cs
- UIElement3DAutomationPeer.cs
- DataSourceExpressionCollection.cs
- XmlNodeReader.cs
- InvalidDataContractException.cs
- CategoriesDocument.cs
- CustomCredentialPolicy.cs
- MembershipUser.cs
- HebrewCalendar.cs
- CngKeyBlobFormat.cs
- DiffuseMaterial.cs
- Pool.cs
- ClientConfigurationHost.cs
- Unit.cs
- ValueOfAction.cs
- HtmlInputButton.cs
- _ServiceNameStore.cs
- NullableIntSumAggregationOperator.cs
- GeneralTransform2DTo3D.cs
- TargetPerspective.cs
- WindowsBrush.cs
- AnnotationAuthorChangedEventArgs.cs
- NativeRecognizer.cs
- ThreadSafeList.cs
- MissingMemberException.cs
- Marshal.cs
- LinearGradientBrush.cs
- RectangleGeometry.cs
- Trace.cs
- PersonalizationStateQuery.cs
- XmlLoader.cs
- GorillaCodec.cs
- CharKeyFrameCollection.cs
- HandlerFactoryCache.cs
- BaseValidator.cs
- KerberosSecurityTokenProvider.cs
- ConstNode.cs
- WindowsListView.cs
- Parameter.cs
- WebPartConnectionsDisconnectVerb.cs
- DbMetaDataCollectionNames.cs
- WebPartsSection.cs
- ComponentResourceManager.cs
- CustomWebEventKey.cs
- OdbcFactory.cs
- ImageBrush.cs
- FrameSecurityDescriptor.cs
- Point.cs
- SqlStream.cs
- ResizeGrip.cs
- CharacterMetrics.cs
- _AutoWebProxyScriptWrapper.cs
- DynamicILGenerator.cs
- ElementUtil.cs
- MemoryRecordBuffer.cs
- DesignTimeVisibleAttribute.cs
- UriTemplate.cs
- SHA256Managed.cs
- SessionStateUtil.cs
- TypeGeneratedEventArgs.cs
- UpdateTranslator.cs
- WindowsFormsSectionHandler.cs
- TypeUnloadedException.cs
- DataGridViewAccessibleObject.cs
- DeviceContexts.cs
- XPathAncestorQuery.cs
- TextProviderWrapper.cs
- DbFunctionCommandTree.cs
- Rect.cs
- HostProtectionException.cs
- manifestimages.cs
- SqlRetyper.cs
- CharEnumerator.cs
- TemplateContentLoader.cs
- RectAnimation.cs
- CanonicalizationDriver.cs
- PrePostDescendentsWalker.cs
- Vector3DConverter.cs
- SelectionChangedEventArgs.cs
- EnvironmentPermission.cs
- BaseValidator.cs
- ViewStateModeByIdAttribute.cs
- StyleHelper.cs
- BooleanFunctions.cs
- RowSpanVector.cs
- MimeMapping.cs
- TimelineGroup.cs
- AssemblyAttributesGoHere.cs
- dbenumerator.cs