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
- VersionedStreamOwner.cs
- RangeExpression.cs
- Attribute.cs
- ExternalException.cs
- CompileXomlTask.cs
- namescope.cs
- SqlInternalConnectionTds.cs
- ListControlConvertEventArgs.cs
- Oid.cs
- UnsafeNativeMethods.cs
- DeviceFilterEditorDialog.cs
- VisualTreeUtils.cs
- IndexOutOfRangeException.cs
- EncoderNLS.cs
- RegularExpressionValidator.cs
- ChangeConflicts.cs
- ScriptHandlerFactory.cs
- PopupControlService.cs
- ListViewGroupItemCollection.cs
- DefaultTraceListener.cs
- MSHTMLHost.cs
- WindowsListViewSubItem.cs
- LongTypeConverter.cs
- InputLangChangeRequestEvent.cs
- SmtpNetworkElement.cs
- Cursors.cs
- TiffBitmapDecoder.cs
- ActivationServices.cs
- XPathChildIterator.cs
- _RequestCacheProtocol.cs
- ResourceWriter.cs
- SkipStoryboardToFill.cs
- CoTaskMemHandle.cs
- UserValidatedEventArgs.cs
- MailDefinition.cs
- ECDiffieHellmanCng.cs
- InputBinding.cs
- StatusBarPanelClickEvent.cs
- ValidationError.cs
- LocalIdKeyIdentifierClause.cs
- MultiAsyncResult.cs
- GeneralTransform.cs
- IOThreadScheduler.cs
- PtsPage.cs
- InstanceContextManager.cs
- PrintPreviewControl.cs
- DescendentsWalkerBase.cs
- AQNBuilder.cs
- LineBreakRecord.cs
- PageParser.cs
- FrameworkElementAutomationPeer.cs
- DelegateArgumentReference.cs
- SqlReorderer.cs
- TextHidden.cs
- QilGenerator.cs
- XPathConvert.cs
- Triangle.cs
- GrowingArray.cs
- ContainerFilterService.cs
- PropertyMapper.cs
- BamlMapTable.cs
- DependencyObjectType.cs
- XmlSecureResolver.cs
- CheckBoxField.cs
- ActiveXContainer.cs
- RegexCode.cs
- FixedFlowMap.cs
- XamlSerializerUtil.cs
- HybridDictionary.cs
- SqlCacheDependencyDatabase.cs
- adornercollection.cs
- ValidationPropertyAttribute.cs
- __Filters.cs
- DependencyPropertyConverter.cs
- pingexception.cs
- RuntimeWrappedException.cs
- GridView.cs
- FormCollection.cs
- AsyncOperationManager.cs
- XslException.cs
- AttributeUsageAttribute.cs
- FastEncoder.cs
- FileInfo.cs
- XPathPatternBuilder.cs
- SqlUDTStorage.cs
- LineVisual.cs
- IDQuery.cs
- ApplicationId.cs
- Geometry.cs
- BindingContext.cs
- TrackingMemoryStream.cs
- BookmarkOptionsHelper.cs
- ContainerUIElement3D.cs
- UnsafeNativeMethodsCLR.cs
- FileNotFoundException.cs
- ListDictionary.cs
- ListViewItem.cs
- CommandValueSerializer.cs
- QilVisitor.cs
- IntellisenseTextBox.cs