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
- RequestStatusBarUpdateEventArgs.cs
- RuleSetBrowserDialog.cs
- SocketSettings.cs
- StringAttributeCollection.cs
- httpserverutility.cs
- HttpApplication.cs
- PackageRelationshipSelector.cs
- HwndStylusInputProvider.cs
- HwndSource.cs
- StreamWriter.cs
- Environment.cs
- StdValidatorsAndConverters.cs
- ProjectionPlan.cs
- control.ime.cs
- DescendantOverDescendantQuery.cs
- OrderedDictionary.cs
- LocalizableResourceBuilder.cs
- DataRelation.cs
- TreeNodeCollection.cs
- GenericArgumentsUpdater.cs
- SubMenuStyle.cs
- QuadraticEase.cs
- DataGridViewHeaderCell.cs
- StackOverflowException.cs
- ObjectItemCachedAssemblyLoader.cs
- HttpCacheVary.cs
- NamedPipeWorkerProcess.cs
- RequestCacheManager.cs
- DataControlCommands.cs
- ChannelSinkStacks.cs
- TypeNameParser.cs
- ToolStripContentPanelRenderEventArgs.cs
- SiteMembershipCondition.cs
- RootAction.cs
- UIHelper.cs
- ItemsControl.cs
- StyleCollection.cs
- WSSecureConversationFeb2005.cs
- ParameterBuilder.cs
- Menu.cs
- CompilerResults.cs
- UpdateCompiler.cs
- ComAwareEventInfo.cs
- QueryProcessor.cs
- BaseDataListComponentEditor.cs
- ButtonPopupAdapter.cs
- TableParaClient.cs
- VSWCFServiceContractGenerator.cs
- OAVariantLib.cs
- ObjectDataSourceDisposingEventArgs.cs
- Constants.cs
- AsyncOperation.cs
- ErrorItem.cs
- UIElementHelper.cs
- BuiltInExpr.cs
- PropertyTabChangedEvent.cs
- ControlPropertyNameConverter.cs
- Merger.cs
- ComboBoxRenderer.cs
- RecommendedAsConfigurableAttribute.cs
- ServiceDescriptionReflector.cs
- XmlText.cs
- DataGridCommandEventArgs.cs
- WinInet.cs
- DataSourceCacheDurationConverter.cs
- SignedXml.cs
- dsa.cs
- TextBoxAutomationPeer.cs
- RectangleHotSpot.cs
- GridToolTip.cs
- MarkupProperty.cs
- RequiredFieldValidator.cs
- DataSet.cs
- WindowsGrip.cs
- AdPostCacheSubstitution.cs
- Button.cs
- Set.cs
- DataViewSettingCollection.cs
- XPathSelfQuery.cs
- Light.cs
- SystemDiagnosticsSection.cs
- ObservableCollection.cs
- Timeline.cs
- UnauthorizedWebPart.cs
- HttpInputStream.cs
- MimeXmlImporter.cs
- OracleCommand.cs
- SessionStateItemCollection.cs
- WorkflowRuntimeServiceElementCollection.cs
- ReadOnlyCollection.cs
- Brushes.cs
- CompiledIdentityConstraint.cs
- SearchForVirtualItemEventArgs.cs
- ProfileEventArgs.cs
- XmlReturnWriter.cs
- CommandPlan.cs
- GenericTypeParameterBuilder.cs
- SessionSwitchEventArgs.cs
- ProtocolElementCollection.cs
- FileDataSourceCache.cs