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
- VectorCollectionConverter.cs
- DesignerResources.cs
- GcSettings.cs
- XmlQueryTypeFactory.cs
- TimelineCollection.cs
- Restrictions.cs
- XmlDictionaryWriter.cs
- TypeValidationEventArgs.cs
- SafeFindHandle.cs
- Comparer.cs
- UITypeEditor.cs
- TransformerConfigurationWizardBase.cs
- WpfPayload.cs
- PlatformCulture.cs
- LabelAutomationPeer.cs
- UInt64Storage.cs
- OracleParameterCollection.cs
- InputProcessorProfilesLoader.cs
- ColorConvertedBitmap.cs
- DoubleConverter.cs
- View.cs
- StagingAreaInputItem.cs
- DescendantQuery.cs
- BrowserCapabilitiesFactory.cs
- IPipelineRuntime.cs
- StructuredTypeInfo.cs
- DependencyPropertyKey.cs
- Rijndael.cs
- CryptographicAttribute.cs
- AlphabetConverter.cs
- EventLogTraceListener.cs
- ImageSource.cs
- View.cs
- WaitForChangedResult.cs
- PointAnimationClockResource.cs
- RouteUrlExpressionBuilder.cs
- NullEntityWrapper.cs
- BooleanAnimationUsingKeyFrames.cs
- InputReport.cs
- DeflateStream.cs
- SafeNativeMethodsMilCoreApi.cs
- IdentityValidationException.cs
- CheckBox.cs
- WSSecurityTokenSerializer.cs
- ListDictionaryInternal.cs
- RuntimeEnvironment.cs
- RelationshipEndMember.cs
- GlobalItem.cs
- DbTransaction.cs
- OAVariantLib.cs
- WebPartChrome.cs
- PbrsForward.cs
- PropertyValueChangedEvent.cs
- CheckBoxStandardAdapter.cs
- Page.cs
- DrawListViewColumnHeaderEventArgs.cs
- MultiPageTextView.cs
- ObjectListCommandCollection.cs
- HttpRuntime.cs
- MachineKeyValidationConverter.cs
- HtmlTableCellCollection.cs
- ChangesetResponse.cs
- PermissionAttributes.cs
- TraceUtility.cs
- ResolveMatchesCD1.cs
- RequestCacheManager.cs
- AsyncContentLoadedEventArgs.cs
- GroupLabel.cs
- CustomPeerResolverService.cs
- CodeCompileUnit.cs
- localization.cs
- EnumBuilder.cs
- mansign.cs
- WinEventQueueItem.cs
- _TransmitFileOverlappedAsyncResult.cs
- Matrix.cs
- UnderstoodHeaders.cs
- WeakHashtable.cs
- CredentialManagerDialog.cs
- EventLogInternal.cs
- SafeViewOfFileHandle.cs
- StdValidatorsAndConverters.cs
- TextDecoration.cs
- IncrementalReadDecoders.cs
- Viewport2DVisual3D.cs
- SelectionItemPattern.cs
- ConditionValidator.cs
- DescriptionAttribute.cs
- ButtonBase.cs
- XmlDataImplementation.cs
- PDBReader.cs
- SqlCacheDependencyDatabase.cs
- Image.cs
- DurableRuntimeValidator.cs
- ButtonPopupAdapter.cs
- PromptBuilder.cs
- XmlSchemaObjectTable.cs
- DataSourceControl.cs
- HttpDictionary.cs
- PackUriHelper.cs