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
- ListViewGroupItemCollection.cs
- FixedSOMSemanticBox.cs
- util.cs
- StyleCollectionEditor.cs
- followingquery.cs
- AuthorizationSection.cs
- StackSpiller.Temps.cs
- GlyphInfoList.cs
- QueueProcessor.cs
- PropagatorResult.cs
- MergeFilterQuery.cs
- AtlasWeb.Designer.cs
- PropertyPathConverter.cs
- WebPartDescriptionCollection.cs
- CheckBoxStandardAdapter.cs
- Timer.cs
- WpfKnownMemberInvoker.cs
- ColumnPropertiesGroup.cs
- ContentControl.cs
- JumpList.cs
- GridViewRowCollection.cs
- DynamicResourceExtension.cs
- InvocationExpression.cs
- TransformProviderWrapper.cs
- FolderLevelBuildProviderCollection.cs
- PopupRootAutomationPeer.cs
- XPathExpr.cs
- VectorAnimation.cs
- DrawingContextWalker.cs
- StringInfo.cs
- VectorAnimation.cs
- QilInvoke.cs
- TableLayoutColumnStyleCollection.cs
- ComplexObject.cs
- sqlstateclientmanager.cs
- UniformGrid.cs
- BufferedWebEventProvider.cs
- StringWriter.cs
- TextElementCollectionHelper.cs
- Monitor.cs
- ErrorStyle.cs
- TargetException.cs
- QueryContinueDragEventArgs.cs
- ByteAnimation.cs
- TimelineGroup.cs
- ImageCollectionCodeDomSerializer.cs
- LocationReferenceValue.cs
- processwaithandle.cs
- PermissionRequestEvidence.cs
- XmlILStorageConverter.cs
- PostBackOptions.cs
- CompositeDispatchFormatter.cs
- LinkClickEvent.cs
- Stylesheet.cs
- ProtocolsConfigurationEntry.cs
- CollectionType.cs
- InsufficientMemoryException.cs
- BaseAutoFormat.cs
- CqlQuery.cs
- MarkupProperty.cs
- BypassElement.cs
- FamilyMap.cs
- DrawingContextDrawingContextWalker.cs
- ObjectCloneHelper.cs
- WebPartCollection.cs
- WebPartUtil.cs
- SynchronizedInputHelper.cs
- GridViewEditEventArgs.cs
- RightsManagementEncryptedStream.cs
- ImageFormat.cs
- WindowsSlider.cs
- XsdValidatingReader.cs
- SystemIcmpV6Statistics.cs
- Win32NamedPipes.cs
- TraceContextEventArgs.cs
- RowUpdatedEventArgs.cs
- XPathDocumentBuilder.cs
- GradientBrush.cs
- EncodedStreamFactory.cs
- BitmapFrameEncode.cs
- DispatcherExceptionEventArgs.cs
- SymbolMethod.cs
- ExpressionDumper.cs
- WorkflowViewService.cs
- HitTestWithGeometryDrawingContextWalker.cs
- LinearKeyFrames.cs
- PeerApplicationLaunchInfo.cs
- DataBoundControl.cs
- QueryContinueDragEventArgs.cs
- DocumentViewerHelper.cs
- LocalizableAttribute.cs
- StateRuntime.cs
- ToolbarAUtomationPeer.cs
- SignatureConfirmations.cs
- DataPagerFieldCommandEventArgs.cs
- WebPartRestoreVerb.cs
- ItemsPresenter.cs
- RemotingConfiguration.cs
- HttpChannelListener.cs
- PointCollectionValueSerializer.cs