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
- SerializationStore.cs
- ToolboxDataAttribute.cs
- XmlSchemaSimpleType.cs
- ResourcesChangeInfo.cs
- versioninfo.cs
- sqlmetadatafactory.cs
- TableCell.cs
- ControlBuilder.cs
- Vector.cs
- ConfigurationElement.cs
- HtmlTableCell.cs
- RegexTree.cs
- CodePageUtils.cs
- DataGridItemCollection.cs
- SecureConversationServiceElement.cs
- ToolStripItemRenderEventArgs.cs
- XmlSerializerSection.cs
- StreamDocument.cs
- XmlSchemaNotation.cs
- QueryCoreOp.cs
- ClientSettingsSection.cs
- EventHandlerService.cs
- LoadedOrUnloadedOperation.cs
- SmiMetaData.cs
- ArraySortHelper.cs
- XslTransform.cs
- CacheForPrimitiveTypes.cs
- CodeActivity.cs
- VisualBasic.cs
- EasingFunctionBase.cs
- VirtualizedCellInfoCollection.cs
- XslNumber.cs
- XsltException.cs
- TrackBarRenderer.cs
- ConfigurationValidatorAttribute.cs
- DataTableReader.cs
- TextTreeExtractElementUndoUnit.cs
- TempFiles.cs
- IgnorePropertiesAttribute.cs
- AccessedThroughPropertyAttribute.cs
- PipelineComponent.cs
- NamespaceDecl.cs
- WaitForChangedResult.cs
- QueryReaderSettings.cs
- BookmarkInfo.cs
- TreeNode.cs
- Exception.cs
- Typeface.cs
- SchemaNames.cs
- XamlFilter.cs
- _AutoWebProxyScriptWrapper.cs
- XmlCharCheckingWriter.cs
- _emptywebproxy.cs
- RadialGradientBrush.cs
- HtmlButton.cs
- PbrsForward.cs
- TextAction.cs
- DbConnectionPoolIdentity.cs
- MenuItemCollection.cs
- __Filters.cs
- WorkItem.cs
- XmlSchemaAll.cs
- DocComment.cs
- ByteAnimationBase.cs
- Equal.cs
- UrlMappingsModule.cs
- ComboBoxRenderer.cs
- AmbiguousMatchException.cs
- ExpanderAutomationPeer.cs
- TreeViewImageIndexConverter.cs
- ThreadStateException.cs
- DbConnectionHelper.cs
- PartialClassGenerationTask.cs
- XmlNodeReader.cs
- SQLInt16Storage.cs
- FileDetails.cs
- Pen.cs
- HttpChannelBindingToken.cs
- BinaryConverter.cs
- x509store.cs
- WindowsListViewGroup.cs
- PropertyKey.cs
- Image.cs
- MessagePartDescriptionCollection.cs
- externdll.cs
- PageWrapper.cs
- XmlSchemaAny.cs
- OracleDateTime.cs
- EntityDataSourceMemberPath.cs
- UrlPath.cs
- ListControl.cs
- RadialGradientBrush.cs
- Convert.cs
- ApplicationSettingsBase.cs
- AssociationTypeEmitter.cs
- ProcessThreadCollection.cs
- XmlChoiceIdentifierAttribute.cs
- ScrollEventArgs.cs
- AutomationElementCollection.cs
- ParagraphVisual.cs