Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Base / System / Windows / DependencyPropertyKey.cs / 1 / DependencyPropertyKey.cs
using System; using System.Diagnostics; // For Assert namespace System.Windows { ////// Authorization key for access to read-only DependencyProperty. /// Acquired via DependencyProperty.RegisterReadOnly/RegisterAttachedReadOnly /// and used in DependencyObject.SetValue/ClearValue. /// ////// This object can have a transient state upon creation where the _dp /// field can be null until initialized. However in use _dp needs to always /// be non-null. Otherwise it is treated as a key that can't unlock anything. /// (When needed, this property is available via the static constant NoAccess. /// public sealed class DependencyPropertyKey { ////// The DependencyProperty associated with this access key. This key /// does not authorize access to any other property. /// public DependencyProperty DependencyProperty { get { return _dp; } } internal DependencyPropertyKey(DependencyProperty dp) { _dp = dp; } ////// Override the metadata of a property that is already secured with /// this key. /// public void OverrideMetadata( Type forType, PropertyMetadata typeMetadata ) { if( _dp == null ) { throw new InvalidOperationException(); } _dp.OverrideMetadata( forType, typeMetadata, this ); } // This is not a property setter because we can't have a public // property getter and a internal property setter on the same property. internal void SetDependencyProperty(DependencyProperty dp) { Debug.Assert(_dp==null,"This should only be used when we need a placeholder and have a temporary value of null. It should not be used to change this property."); _dp = dp; } private DependencyProperty _dp = null; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Diagnostics; // For Assert namespace System.Windows { ////// Authorization key for access to read-only DependencyProperty. /// Acquired via DependencyProperty.RegisterReadOnly/RegisterAttachedReadOnly /// and used in DependencyObject.SetValue/ClearValue. /// ////// This object can have a transient state upon creation where the _dp /// field can be null until initialized. However in use _dp needs to always /// be non-null. Otherwise it is treated as a key that can't unlock anything. /// (When needed, this property is available via the static constant NoAccess. /// public sealed class DependencyPropertyKey { ////// The DependencyProperty associated with this access key. This key /// does not authorize access to any other property. /// public DependencyProperty DependencyProperty { get { return _dp; } } internal DependencyPropertyKey(DependencyProperty dp) { _dp = dp; } ////// Override the metadata of a property that is already secured with /// this key. /// public void OverrideMetadata( Type forType, PropertyMetadata typeMetadata ) { if( _dp == null ) { throw new InvalidOperationException(); } _dp.OverrideMetadata( forType, typeMetadata, this ); } // This is not a property setter because we can't have a public // property getter and a internal property setter on the same property. internal void SetDependencyProperty(DependencyProperty dp) { Debug.Assert(_dp==null,"This should only be used when we need a placeholder and have a temporary value of null. It should not be used to change this property."); _dp = dp; } private DependencyProperty _dp = null; } } // 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
- AssociationTypeEmitter.cs
- DiagnosticsConfiguration.cs
- TypeDescriptorFilterService.cs
- WebEvents.cs
- LogicalExpr.cs
- InputScope.cs
- StringFormat.cs
- MethodBuilderInstantiation.cs
- XmlTextReader.cs
- WebOperationContext.cs
- ToolStripPanelCell.cs
- DesignerUtility.cs
- Utils.cs
- NamedPipeTransportElement.cs
- ScaleTransform.cs
- CursorConverter.cs
- DocumentPageViewAutomationPeer.cs
- TemplateBindingExtension.cs
- SpecialTypeDataContract.cs
- WeakKeyDictionary.cs
- SHA256.cs
- HttpStaticObjectsCollectionBase.cs
- prefixendpointaddressmessagefiltertable.cs
- TransportSecurityProtocol.cs
- TextRange.cs
- SemanticResultValue.cs
- OletxTransactionManager.cs
- TextViewSelectionProcessor.cs
- DocumentCollection.cs
- CancellationTokenSource.cs
- ClassicBorderDecorator.cs
- LinqDataSourceDeleteEventArgs.cs
- PageStatePersister.cs
- AutomationIdentifierGuids.cs
- MemoryPressure.cs
- WebPartConnectionsCloseVerb.cs
- CustomWebEventKey.cs
- ServicePointManager.cs
- PolyLineSegmentFigureLogic.cs
- TextEffect.cs
- ThumbButtonInfo.cs
- BufferedGraphics.cs
- Metafile.cs
- DataGridViewComponentPropertyGridSite.cs
- DetailsViewDeleteEventArgs.cs
- KeyValueSerializer.cs
- Mouse.cs
- Rect.cs
- KnownColorTable.cs
- ExtendedPropertyDescriptor.cs
- ToolStripHighContrastRenderer.cs
- DocumentViewerBaseAutomationPeer.cs
- _ConnectionGroup.cs
- ColorDialog.cs
- SessionStateSection.cs
- OdbcInfoMessageEvent.cs
- TemplateNameScope.cs
- WindowsTooltip.cs
- UpdatePanelTrigger.cs
- UrlAuthFailedErrorFormatter.cs
- DetailsView.cs
- HashMembershipCondition.cs
- WindowAutomationPeer.cs
- EntityContainerEmitter.cs
- CustomTypeDescriptor.cs
- Keywords.cs
- IPHostEntry.cs
- DbDataSourceEnumerator.cs
- PeerToPeerException.cs
- PolicyVersionConverter.cs
- XmlToDatasetMap.cs
- PolicyValidationException.cs
- PackageProperties.cs
- CaseStatementSlot.cs
- StandardBindingElementCollection.cs
- SqlDataSourceCommandEventArgs.cs
- ResourcePermissionBaseEntry.cs
- XmlSchemaGroupRef.cs
- DbParameterCollectionHelper.cs
- RegexWorker.cs
- ConsumerConnectionPointCollection.cs
- ContentPosition.cs
- Stack.cs
- SoapParser.cs
- cache.cs
- BindingRestrictions.cs
- JsonEncodingStreamWrapper.cs
- DynamicILGenerator.cs
- StructuredTypeEmitter.cs
- COM2ExtendedBrowsingHandler.cs
- InputLanguageManager.cs
- CheckableControlBaseAdapter.cs
- EntityDataSourceViewSchema.cs
- MemberPath.cs
- Executor.cs
- PowerStatus.cs
- IssuedTokenClientCredential.cs
- BamlTreeUpdater.cs
- FontSourceCollection.cs
- HostedImpersonationContext.cs