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
- ThreadPoolTaskScheduler.cs
- MenuItem.cs
- RotateTransform3D.cs
- EventLogEntry.cs
- DtrList.cs
- PointAnimationClockResource.cs
- Overlapped.cs
- QilTernary.cs
- ToolStripComboBox.cs
- BinarySerializer.cs
- EmptyControlCollection.cs
- RangeValueProviderWrapper.cs
- XsdCachingReader.cs
- WorkerProcess.cs
- XmlSchema.cs
- SqlConnectionPoolGroupProviderInfo.cs
- TraceHandlerErrorFormatter.cs
- DropDownHolder.cs
- BitmapEffectDrawing.cs
- DupHandleConnectionReader.cs
- DebugView.cs
- Viewport3DVisual.cs
- HtmlString.cs
- GridViewCancelEditEventArgs.cs
- InstanceKeyCompleteException.cs
- ToolStripControlHost.cs
- ResourceProperty.cs
- TargetPerspective.cs
- EntitySqlQueryCacheEntry.cs
- CharConverter.cs
- NamedPipeTransportElement.cs
- EncoderFallback.cs
- URLEditor.cs
- XNodeNavigator.cs
- UIElementIsland.cs
- FlowchartSizeFeature.cs
- Oid.cs
- SerialPinChanges.cs
- GrammarBuilderPhrase.cs
- AssemblyInfo.cs
- PageAdapter.cs
- PositiveTimeSpanValidator.cs
- WmlCalendarAdapter.cs
- LocalizedNameDescriptionPair.cs
- DataPagerFieldCommandEventArgs.cs
- AssemblyHash.cs
- _Semaphore.cs
- RSAPKCS1SignatureFormatter.cs
- LongValidatorAttribute.cs
- MD5CryptoServiceProvider.cs
- ExpressionNormalizer.cs
- PrintControllerWithStatusDialog.cs
- glyphs.cs
- ScaleTransform.cs
- ListViewDeletedEventArgs.cs
- SafeUserTokenHandle.cs
- Timeline.cs
- ProfileWorkflowElement.cs
- KoreanLunisolarCalendar.cs
- PixelShader.cs
- InstanceDescriptor.cs
- DataGridColumnStyleMappingNameEditor.cs
- Conditional.cs
- InputGestureCollection.cs
- HiddenField.cs
- embossbitmapeffect.cs
- StickyNoteAnnotations.cs
- MonitorWrapper.cs
- EmptyEnumerable.cs
- EntityModelBuildProvider.cs
- Buffer.cs
- StrictModeSecurityHeaderElementInferenceEngine.cs
- CompoundFileIOPermission.cs
- IntegerValidator.cs
- OpCellTreeNode.cs
- TargetFrameworkAttribute.cs
- XamlWriter.cs
- SpeechSeg.cs
- TrackBarRenderer.cs
- DeferredBinaryDeserializerExtension.cs
- ModifierKeysValueSerializer.cs
- XmlCollation.cs
- ListViewDataItem.cs
- WorkflowApplicationAbortedEventArgs.cs
- NumericUpDown.cs
- NetworkCredential.cs
- SafeFindHandle.cs
- StorageEntityTypeMapping.cs
- XmlExtensionFunction.cs
- _StreamFramer.cs
- FormsAuthenticationEventArgs.cs
- RoutingService.cs
- ComplexLine.cs
- DbInsertCommandTree.cs
- Directory.cs
- VariableQuery.cs
- GeneralTransformGroup.cs
- TargetParameterCountException.cs
- LaxModeSecurityHeaderElementInferenceEngine.cs
- XmlDocumentFieldSchema.cs