Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- LinkButton.cs
- DictionaryManager.cs
- SqlTriggerContext.cs
- ResolveNameEventArgs.cs
- ExtensionQuery.cs
- GorillaCodec.cs
- QueryCacheEntry.cs
- ISAPIApplicationHost.cs
- propertyentry.cs
- TextBoxBase.cs
- CharacterHit.cs
- SoapMessage.cs
- AnnotationStore.cs
- ParameterEditorUserControl.cs
- RegexFCD.cs
- XsdBuilder.cs
- KeyPullup.cs
- Rotation3DAnimationBase.cs
- CodeTypeParameterCollection.cs
- CapabilitiesRule.cs
- Debug.cs
- NumericUpDownAcceleration.cs
- LinkLabel.cs
- SynthesizerStateChangedEventArgs.cs
- Cursor.cs
- TemplatedWizardStep.cs
- CodeAttributeArgument.cs
- DateTimeFormatInfoScanner.cs
- DbConnectionPoolOptions.cs
- XPathArrayIterator.cs
- ScrollProviderWrapper.cs
- WebBrowserSiteBase.cs
- DataSourceControl.cs
- BaseConfigurationRecord.cs
- Rules.cs
- HttpPostLocalhostServerProtocol.cs
- LinqDataSourceContextEventArgs.cs
- ColorAnimationBase.cs
- FocusManager.cs
- DBCommand.cs
- SoapObjectInfo.cs
- NullableConverter.cs
- SourceLocation.cs
- Panel.cs
- GcSettings.cs
- MenuItem.cs
- MetaModel.cs
- PrintDialog.cs
- ReflectEventDescriptor.cs
- DataPagerFieldCollection.cs
- ButtonBase.cs
- TransferRequestHandler.cs
- EventEntry.cs
- DtrList.cs
- AuthorizationSection.cs
- ServiceModelActivity.cs
- XmlSchemaProviderAttribute.cs
- DomainConstraint.cs
- RetrieveVirtualItemEventArgs.cs
- HtmlInputButton.cs
- TraceSwitch.cs
- WebPartConnectionsConfigureVerb.cs
- TextBounds.cs
- _UriTypeConverter.cs
- Aggregates.cs
- SuppressMessageAttribute.cs
- ProfileEventArgs.cs
- DataTableNameHandler.cs
- RijndaelManagedTransform.cs
- HttpRuntime.cs
- ProxySimple.cs
- SqlCachedBuffer.cs
- CommonDialog.cs
- RSAPKCS1SignatureDeformatter.cs
- StorageModelBuildProvider.cs
- TextCompositionManager.cs
- Soap.cs
- XPathNodeHelper.cs
- InputScope.cs
- SmiEventStream.cs
- KeyboardInputProviderAcquireFocusEventArgs.cs
- SqlUDTStorage.cs
- BuildProvider.cs
- TableCellCollection.cs
- LinkedList.cs
- NavigationHelper.cs
- UnauthorizedWebPart.cs
- ToolStripCollectionEditor.cs
- SetStoryboardSpeedRatio.cs
- AnnotationAuthorChangedEventArgs.cs
- MD5CryptoServiceProvider.cs
- ExclusiveTcpListener.cs
- SystemWebCachingSectionGroup.cs
- AlignmentXValidation.cs
- SortedList.cs
- TempFiles.cs
- TypefaceCollection.cs
- DragStartedEventArgs.cs
- TabControlCancelEvent.cs
- AssemblyFilter.cs