Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / System / Windows / DependencyPropertyKey.cs / 1305600 / 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
- _AutoWebProxyScriptHelper.cs
- CodeIdentifier.cs
- JournalEntryStack.cs
- CapiSymmetricAlgorithm.cs
- OSFeature.cs
- ContextBase.cs
- TaiwanCalendar.cs
- StrokeCollectionDefaultValueFactory.cs
- LogStream.cs
- DataViewListener.cs
- JsonDeserializer.cs
- TypeSystemHelpers.cs
- DataColumnCollection.cs
- SymbolEqualComparer.cs
- WebReferenceCollection.cs
- IERequestCache.cs
- PopupRootAutomationPeer.cs
- DeclarativeCatalogPart.cs
- COM2Enum.cs
- PreviewKeyDownEventArgs.cs
- HttpException.cs
- querybuilder.cs
- DragEventArgs.cs
- Task.cs
- HasActivatableWorkflowEvent.cs
- ProbeMatchesMessageCD1.cs
- TextEditorCopyPaste.cs
- Attributes.cs
- RegexMatchCollection.cs
- SqlProcedureAttribute.cs
- EmptyImpersonationContext.cs
- DataGridTextColumn.cs
- ErrorHandlerFaultInfo.cs
- ColorConvertedBitmapExtension.cs
- RelationshipConverter.cs
- NumberSubstitution.cs
- WindowsProgressbar.cs
- Size.cs
- ArgumentOutOfRangeException.cs
- EventDescriptor.cs
- WebPartCatalogAddVerb.cs
- XmlSchemaAttributeGroupRef.cs
- xmlglyphRunInfo.cs
- ExpressionEditorAttribute.cs
- StrongName.cs
- SyndicationElementExtensionCollection.cs
- DispatcherSynchronizationContext.cs
- Timeline.cs
- ObjectListField.cs
- BufferedStream.cs
- AutoResizedEvent.cs
- EntityParameterCollection.cs
- JsonByteArrayDataContract.cs
- Soap12ServerProtocol.cs
- DataGridViewAutoSizeModeEventArgs.cs
- DBSchemaRow.cs
- RayHitTestParameters.cs
- LineVisual.cs
- ConstructorBuilder.cs
- ViewKeyConstraint.cs
- panel.cs
- XamlPathDataSerializer.cs
- MessageBox.cs
- CalendarModeChangedEventArgs.cs
- SamlAudienceRestrictionCondition.cs
- Calendar.cs
- ListenerHandler.cs
- DirectionalLight.cs
- ErrorTableItemStyle.cs
- FormViewDeleteEventArgs.cs
- DiagnosticsConfiguration.cs
- ValidationSummary.cs
- ProtocolsSection.cs
- PixelFormat.cs
- ColorDialog.cs
- DashStyle.cs
- GeneralTransform3DTo2DTo3D.cs
- util.cs
- EventSetter.cs
- ServiceOperationViewControl.cs
- EditorZone.cs
- CursorInteropHelper.cs
- RegexGroupCollection.cs
- XPathNodePointer.cs
- ListItemParagraph.cs
- TabPanel.cs
- DataGridRowDetailsEventArgs.cs
- ParallelTimeline.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- TreeNode.cs
- PersonalizationProvider.cs
- WeakHashtable.cs
- SubMenuStyle.cs
- RoleGroup.cs
- PlaceHolder.cs
- GlyphTypeface.cs
- PeerInvitationResponse.cs
- SoapExtensionStream.cs
- ScriptIgnoreAttribute.cs
- RSAPKCS1SignatureFormatter.cs