Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Base / System / Windows / DeferredReference.cs / 1 / DeferredReference.cs
//----------------------------------------------------------------------------
//
// File: DeferredReference.cs
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// Description: Proxy object passed to the property system to delay load values.
//
//---------------------------------------------------------------------------
namespace System.Windows
{
using MS.Internal.WindowsBase; // FriendAccessAllowed
// Proxy object passed to the property system to delay load values.
//
// The property system will make a GetValue callback (dereferencing the
// reference) inside DependencyProperty.GetValue calls, or before
// coercion callbacks to derived classes.
//
// DeferredReference instances are passed directly to ValidateValue
// callbacks (which always go to the DependencyProperty owner class),
// and also to CoerceValue callbacks on the owner class only. THEREFORE,
// IT IS
[FriendAccessAllowed] // Built into Base, also used by Core & Framework.
internal abstract class DeferredReference
{
//-----------------------------------------------------
//
// Internal Methods
//
//-----------------------------------------------------
#region Internal Methods
// Deferences a property value on demand.
internal abstract object GetValue(BaseValueSourceInternal valueSource);
// Gets the type of the value it represents
internal abstract Type GetValueType();
#endregion Internal Methods
}
internal class DeferredMutableDefaultReference : DeferredReference
{
#region Constructor
internal DeferredMutableDefaultReference(PropertyMetadata metadata, DependencyObject d, DependencyProperty dp)
{
_sourceObject = d;
_sourceProperty = dp;
_sourceMetadata = metadata;
}
#endregion Constructor
#region Methods
internal override object GetValue(BaseValueSourceInternal valueSource)
{
return _sourceMetadata.GetDefaultValue(_sourceObject, _sourceProperty);
}
// Gets the type of the value it represents
internal override Type GetValueType()
{
return _sourceProperty.PropertyType;
}
#endregion Methods
#region Properties
internal PropertyMetadata SourceMetadata
{
get { return _sourceMetadata; }
}
protected DependencyObject SourceObject
{
get { return _sourceObject; }
}
protected DependencyProperty SourceProperty
{
get { return _sourceProperty; }
}
#endregion Properties
#region Data
private readonly PropertyMetadata _sourceMetadata;
private readonly DependencyObject _sourceObject;
private readonly DependencyProperty _sourceProperty;
#endregion Data
}
}
// 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
- SqlVisitor.cs
- PersistenceIOParticipant.cs
- AsymmetricKeyExchangeFormatter.cs
- TcpClientCredentialType.cs
- NativeMethods.cs
- ProfileSection.cs
- ApplicationTrust.cs
- XmlDataSource.cs
- SqlComparer.cs
- PropertyGridEditorPart.cs
- HttpWebRequest.cs
- BaseCollection.cs
- TabPanel.cs
- DataRelation.cs
- TextTrailingCharacterEllipsis.cs
- X509InitiatorCertificateServiceElement.cs
- HtmlControlPersistable.cs
- Dispatcher.cs
- DocumentDesigner.cs
- CollaborationHelperFunctions.cs
- InvalidPropValue.cs
- complextypematerializer.cs
- DesignerEventService.cs
- ExtendedTransformFactory.cs
- CompiledWorkflowDefinitionContext.cs
- FixedSOMContainer.cs
- TrustLevelCollection.cs
- ProviderMetadataCachedInformation.cs
- ValueUnavailableException.cs
- CompositeFontParser.cs
- JobStaple.cs
- ChunkedMemoryStream.cs
- RelationshipEndMember.cs
- ConstraintStruct.cs
- VisualProxy.cs
- DeflateEmulationStream.cs
- ServiceReference.cs
- StringArrayEditor.cs
- BuildResultCache.cs
- DataErrorValidationRule.cs
- TimeSpanMinutesConverter.cs
- ReverseInheritProperty.cs
- AppModelKnownContentFactory.cs
- RowsCopiedEventArgs.cs
- Tokenizer.cs
- FlowLayoutSettings.cs
- XmlDataSourceNodeDescriptor.cs
- TimeStampChecker.cs
- externdll.cs
- Lasso.cs
- HttpHandlersSection.cs
- ErrorFormatterPage.cs
- SafeNativeMethods.cs
- SyndicationItem.cs
- TextTreeTextElementNode.cs
- KeyFrames.cs
- RegexBoyerMoore.cs
- HttpListenerRequestTraceRecord.cs
- WebPartDescription.cs
- SelectionRangeConverter.cs
- PersonalizablePropertyEntry.cs
- MdiWindowListItemConverter.cs
- PasswordRecoveryDesigner.cs
- DataGridSortCommandEventArgs.cs
- GridErrorDlg.cs
- ServiceDeploymentInfo.cs
- Grid.cs
- SystemBrushes.cs
- WebServiceFaultDesigner.cs
- PlacementWorkspace.cs
- SynthesizerStateChangedEventArgs.cs
- JsonMessageEncoderFactory.cs
- ToolStripItemRenderEventArgs.cs
- SettingsPropertyNotFoundException.cs
- MetadataHelper.cs
- MultiByteCodec.cs
- PartialTrustVisibleAssembliesSection.cs
- ImageInfo.cs
- TrustManagerMoreInformation.cs
- DefaultMergeHelper.cs
- InheritablePropertyChangeInfo.cs
- DynamicRouteExpression.cs
- DefaultEventAttribute.cs
- DelegateArgumentValue.cs
- XmlSchemaValidationException.cs
- ControllableStoryboardAction.cs
- PasswordPropertyTextAttribute.cs
- ExceptionHelpers.cs
- AlternateView.cs
- EarlyBoundInfo.cs
- DropAnimation.xaml.cs
- PageBorderless.cs
- _emptywebproxy.cs
- XmlIlGenerator.cs
- PackagePartCollection.cs
- WebPartZoneCollection.cs
- SafeFindHandle.cs
- contentDescriptor.cs
- OleDbInfoMessageEvent.cs
- NetTcpBindingElement.cs