Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- CodeTypeReferenceExpression.cs
- ParseHttpDate.cs
- MembershipUser.cs
- PaintValueEventArgs.cs
- FontFamily.cs
- SafeRightsManagementEnvironmentHandle.cs
- SymLanguageType.cs
- Sql8ConformanceChecker.cs
- CrossContextChannel.cs
- XmlSchemaAttribute.cs
- ListBoxChrome.cs
- DataTableTypeConverter.cs
- InvalidDataContractException.cs
- ForEachAction.cs
- QueryPageSettingsEventArgs.cs
- TreeNodeStyle.cs
- BuildManagerHost.cs
- BinaryEditor.cs
- PackageDocument.cs
- WebPartEditorCancelVerb.cs
- GridSplitterAutomationPeer.cs
- XmlLinkedNode.cs
- ScriptBehaviorDescriptor.cs
- NumericUpDownAcceleration.cs
- TypeNameConverter.cs
- XmlCDATASection.cs
- IndentedWriter.cs
- PageTheme.cs
- DataGridViewCellCancelEventArgs.cs
- XmlSerializerFactory.cs
- ExtensionWindowHeader.cs
- EndEvent.cs
- SqlDataSourceStatusEventArgs.cs
- UriParserTemplates.cs
- Resources.Designer.cs
- SqlVersion.cs
- PointCollectionConverter.cs
- ClientRuntimeConfig.cs
- WebPartTransformer.cs
- ProviderSettings.cs
- DescendentsWalkerBase.cs
- DynamicPropertyHolder.cs
- ListParaClient.cs
- DataGridViewComponentPropertyGridSite.cs
- UrlParameterReader.cs
- XPathDocumentNavigator.cs
- FactoryRecord.cs
- DataContractJsonSerializer.cs
- Evidence.cs
- InputLanguageManager.cs
- SimpleWorkerRequest.cs
- ResetableIterator.cs
- WebPartDescription.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- AnnotationService.cs
- Module.cs
- SaveFileDialog.cs
- SByte.cs
- MediaSystem.cs
- MetaChildrenColumn.cs
- AppliedDeviceFiltersEditor.cs
- AtomParser.cs
- RootBrowserWindow.cs
- RepeatInfo.cs
- DataServiceContext.cs
- ExtenderProvidedPropertyAttribute.cs
- SvcMapFileSerializer.cs
- CellConstant.cs
- ObjectResult.cs
- formatter.cs
- securestring.cs
- HiddenFieldPageStatePersister.cs
- BitmapEffect.cs
- keycontainerpermission.cs
- XmlSchemaAnyAttribute.cs
- _UriTypeConverter.cs
- RunClient.cs
- XsdDateTime.cs
- DiscoveryClientDocuments.cs
- ParameterCollection.cs
- WithStatement.cs
- Guid.cs
- Action.cs
- _Events.cs
- GlobalItem.cs
- TaiwanCalendar.cs
- TdsRecordBufferSetter.cs
- Path.cs
- ManipulationPivot.cs
- SamlAudienceRestrictionCondition.cs
- HtmlTable.cs
- RedBlackList.cs
- BypassElement.cs
- MarkupWriter.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- OnOperation.cs
- HttpRuntimeSection.cs
- FlowSwitchLink.cs
- basemetadatamappingvisitor.cs
- DefaultTextStore.cs