Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- SchemaCollectionCompiler.cs
- IndexedString.cs
- XmlUTF8TextWriter.cs
- TextEditorTables.cs
- MatrixAnimationUsingKeyFrames.cs
- ReachPageContentCollectionSerializer.cs
- DiagnosticsConfiguration.cs
- SafePointer.cs
- SqlNode.cs
- TypedAsyncResult.cs
- FilterException.cs
- WeakEventManager.cs
- DPCustomTypeDescriptor.cs
- DiagnosticsConfigurationHandler.cs
- _HeaderInfoTable.cs
- MenuCommands.cs
- WindowsFormsHostPropertyMap.cs
- MouseGestureConverter.cs
- TerminateDesigner.cs
- RowParagraph.cs
- IntersectQueryOperator.cs
- MimeBasePart.cs
- MouseActionValueSerializer.cs
- UTF7Encoding.cs
- ResXBuildProvider.cs
- LongTypeConverter.cs
- DocumentPageViewAutomationPeer.cs
- AsymmetricSignatureFormatter.cs
- RelationshipSet.cs
- XmlComplianceUtil.cs
- ISAPIWorkerRequest.cs
- DefaultAsyncDataDispatcher.cs
- QueryPageSettingsEventArgs.cs
- UserControlBuildProvider.cs
- RewritingSimplifier.cs
- FrameDimension.cs
- GlobalDataBindingHandler.cs
- CompilationPass2TaskInternal.cs
- Walker.cs
- DefaultValueAttribute.cs
- ActivityCodeGenerator.cs
- SafeLibraryHandle.cs
- LinkedResourceCollection.cs
- ConstantSlot.cs
- StoreItemCollection.Loader.cs
- MarginsConverter.cs
- WebServiceParameterData.cs
- HashCodeCombiner.cs
- DataConnectionHelper.cs
- EventManager.cs
- BinaryKeyIdentifierClause.cs
- ValidatorCollection.cs
- SizeAnimationUsingKeyFrames.cs
- DataGridViewHitTestInfo.cs
- SetUserLanguageRequest.cs
- COSERVERINFO.cs
- CompositionAdorner.cs
- GroupDescription.cs
- AuthenticateEventArgs.cs
- LogSwitch.cs
- SimpleHandlerBuildProvider.cs
- TagPrefixCollection.cs
- CodeEntryPointMethod.cs
- JpegBitmapEncoder.cs
- WFItemsToSpacerVisibility.cs
- MergePropertyDescriptor.cs
- DataGridViewTopRowAccessibleObject.cs
- PolyLineSegmentFigureLogic.cs
- RelationshipConverter.cs
- CompiledQuery.cs
- ImportRequest.cs
- PackageDigitalSignatureManager.cs
- TextAutomationPeer.cs
- TypedTableBase.cs
- QilName.cs
- errorpatternmatcher.cs
- TemplatePropertyEntry.cs
- PerformanceCounterScope.cs
- DSASignatureFormatter.cs
- AudioStateChangedEventArgs.cs
- CatalogPartChrome.cs
- Tool.cs
- BitmapEditor.cs
- ListManagerBindingsCollection.cs
- DmlSqlGenerator.cs
- MailMessageEventArgs.cs
- XmlBinaryWriter.cs
- TextFindEngine.cs
- XdrBuilder.cs
- DataGridViewColumnStateChangedEventArgs.cs
- HttpCacheVaryByContentEncodings.cs
- Root.cs
- StylusButtonCollection.cs
- hresults.cs
- TypeLoadException.cs
- ListBoxAutomationPeer.cs
- ContractMapping.cs
- ConvertersCollection.cs
- CharacterBufferReference.cs
- ErrorActivity.cs