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
- SqlStream.cs
- Connection.cs
- odbcmetadatafactory.cs
- EdmItemError.cs
- MappedMetaModel.cs
- TransactionManager.cs
- LifetimeMonitor.cs
- SchemaElement.cs
- SourceFileBuildProvider.cs
- AudioException.cs
- CompilationLock.cs
- InputLanguage.cs
- ImageField.cs
- UseAttributeSetsAction.cs
- SerializationFieldInfo.cs
- PathData.cs
- ObjectAnimationBase.cs
- FontFamily.cs
- EntityDataSourceViewSchema.cs
- DataGridViewImageCell.cs
- WsiProfilesElement.cs
- ColorConverter.cs
- DataGridCellAutomationPeer.cs
- UInt16.cs
- CapabilitiesState.cs
- TypeUsage.cs
- CompilerTypeWithParams.cs
- DataGridViewCellCancelEventArgs.cs
- JsonQNameDataContract.cs
- DragSelectionMessageFilter.cs
- ConfigUtil.cs
- ImageListStreamer.cs
- DodSequenceMerge.cs
- Hash.cs
- XsltConvert.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- RegexEditorDialog.cs
- EditorPartChrome.cs
- SmtpCommands.cs
- ProcessHostServerConfig.cs
- NativeWrapper.cs
- TagPrefixInfo.cs
- PenLineCapValidation.cs
- HtmlTableRow.cs
- DrawListViewItemEventArgs.cs
- CapabilitiesRule.cs
- TypedColumnHandler.cs
- Thread.cs
- Preprocessor.cs
- DocumentViewer.cs
- DataObject.cs
- CounterSampleCalculator.cs
- WindowProviderWrapper.cs
- EllipseGeometry.cs
- TargetControlTypeCache.cs
- DataProtection.cs
- WebSysDefaultValueAttribute.cs
- ButtonBaseAutomationPeer.cs
- XmlQueryCardinality.cs
- CapabilitiesAssignment.cs
- File.cs
- XmlKeywords.cs
- RightNameExpirationInfoPair.cs
- BinaryMethodMessage.cs
- ServiceChannelProxy.cs
- TdsValueSetter.cs
- WsdlInspector.cs
- OracleConnectionStringBuilder.cs
- XmlBindingWorker.cs
- StrokeSerializer.cs
- QilFunction.cs
- AstTree.cs
- ApplicationInfo.cs
- PreservationFileWriter.cs
- MetadataFile.cs
- SessionStateModule.cs
- XsltLibrary.cs
- TimeSpan.cs
- Relationship.cs
- CultureInfoConverter.cs
- HttpCookieCollection.cs
- UseLicense.cs
- TableLayoutPanelCodeDomSerializer.cs
- XmlNodeList.cs
- LoginName.cs
- ZipIOExtraField.cs
- DataColumnSelectionConverter.cs
- Container.cs
- X509Certificate2Collection.cs
- SoapFault.cs
- FlowchartStart.xaml.cs
- Panel.cs
- ReplyAdapterChannelListener.cs
- DataGridViewCheckBoxColumn.cs
- _LoggingObject.cs
- FloaterParaClient.cs
- WindowsFormsHostPropertyMap.cs
- SupportsEventValidationAttribute.cs
- XmlExtensionFunction.cs
- SystemSounds.cs