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
- SystemNetworkInterface.cs
- LocatorPartList.cs
- JsonFormatGeneratorStatics.cs
- DbConnectionPoolGroupProviderInfo.cs
- XmlDataCollection.cs
- IisTraceListener.cs
- CollectionContainer.cs
- TextTreeUndo.cs
- EnumValAlphaComparer.cs
- XmlUtf8RawTextWriter.cs
- SafeCryptoHandles.cs
- ProfileInfo.cs
- PassportAuthenticationEventArgs.cs
- MimeTypeAttribute.cs
- DesignBindingPropertyDescriptor.cs
- SystemException.cs
- HttpModuleCollection.cs
- xmlformatgeneratorstatics.cs
- ImageMetadata.cs
- EmptyStringExpandableObjectConverter.cs
- ScriptReference.cs
- PipelineModuleStepContainer.cs
- WindowsStreamSecurityElement.cs
- NetTcpBinding.cs
- PowerModeChangedEventArgs.cs
- SqlBulkCopyColumnMappingCollection.cs
- FixedBufferAttribute.cs
- User.cs
- DbgCompiler.cs
- XmlSortKeyAccumulator.cs
- HtmlEmptyTagControlBuilder.cs
- DataGridViewColumnConverter.cs
- SQLResource.cs
- SynchronousSendBindingElement.cs
- TextBox.cs
- BrushProxy.cs
- TextTrailingWordEllipsis.cs
- OperatingSystem.cs
- ZoneLinkButton.cs
- Util.cs
- PrimarySelectionGlyph.cs
- Visitor.cs
- TextFindEngine.cs
- InputScopeConverter.cs
- ScrollItemPatternIdentifiers.cs
- SspiNegotiationTokenAuthenticatorState.cs
- BamlCollectionHolder.cs
- SessionStateContainer.cs
- PackageDocument.cs
- SchemaAttDef.cs
- WinOEToolBoxItem.cs
- OdbcConnectionString.cs
- Keywords.cs
- OleDbRowUpdatedEvent.cs
- DbConnectionPool.cs
- TextModifier.cs
- TypefaceMetricsCache.cs
- ToolStripDropDownItem.cs
- GridViewRowPresenterBase.cs
- AssemblyCacheEntry.cs
- DesignerForm.cs
- ReleaseInstanceMode.cs
- RayHitTestParameters.cs
- RootBrowserWindowProxy.cs
- DataGridPreparingCellForEditEventArgs.cs
- StatusStrip.cs
- ObjectDataSourceEventArgs.cs
- Queue.cs
- AnnotationMap.cs
- NetSectionGroup.cs
- FontFamily.cs
- RelationshipEndCollection.cs
- LayoutDump.cs
- PopupEventArgs.cs
- WebPartTransformerAttribute.cs
- Rfc2898DeriveBytes.cs
- CustomExpressionEventArgs.cs
- RunClient.cs
- StrongNameHelpers.cs
- SystemWebCachingSectionGroup.cs
- ListViewPagedDataSource.cs
- Thread.cs
- WS2007HttpBindingElement.cs
- WebSysDefaultValueAttribute.cs
- DbMetaDataCollectionNames.cs
- IndependentAnimationStorage.cs
- ApplicationServicesHostFactory.cs
- UriTemplateMatchException.cs
- XmlWrappingWriter.cs
- BuildManagerHost.cs
- OpenFileDialog.cs
- MissingFieldException.cs
- WebControlAdapter.cs
- TokenBasedSet.cs
- PropertyItemInternal.cs
- QueryModel.cs
- Solver.cs
- AspNetCompatibilityRequirementsAttribute.cs
- RevocationPoint.cs
- OLEDB_Util.cs