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
- DataSourceHelper.cs
- ResetableIterator.cs
- XmlCharType.cs
- HttpRequest.cs
- LogAppendAsyncResult.cs
- BindingList.cs
- OleDbConnectionFactory.cs
- ACE.cs
- MeshGeometry3D.cs
- OperatingSystem.cs
- RSACryptoServiceProvider.cs
- SqlBuffer.cs
- TextContainerChangedEventArgs.cs
- PeerApplication.cs
- DbProviderFactories.cs
- BodyGlyph.cs
- WinFormsSecurity.cs
- Select.cs
- xamlnodes.cs
- LiteralControl.cs
- Drawing.cs
- SizeConverter.cs
- CatalogPart.cs
- ByeOperationAsyncResult.cs
- WCFModelStrings.Designer.cs
- X509Certificate2.cs
- ZipFileInfoCollection.cs
- EntityDataReader.cs
- CreateUserWizardStep.cs
- StaticExtensionConverter.cs
- BindingCollection.cs
- DiscriminatorMap.cs
- ColumnPropertiesGroup.cs
- FlowDocumentScrollViewer.cs
- ProcessHostMapPath.cs
- BindingSource.cs
- FloaterParaClient.cs
- HtmlInputReset.cs
- PasswordBox.cs
- AttachmentCollection.cs
- ClientTarget.cs
- SqlRewriteScalarSubqueries.cs
- TopClause.cs
- SystemException.cs
- PresentationUIStyleResources.cs
- XmlAttributes.cs
- ColumnTypeConverter.cs
- ToolStripTextBox.cs
- HttpCachePolicy.cs
- FontNameConverter.cs
- ClrProviderManifest.cs
- SByteStorage.cs
- WmpBitmapEncoder.cs
- AppearanceEditorPart.cs
- InvokerUtil.cs
- EmbeddedObject.cs
- ProfileGroupSettings.cs
- ColumnResizeAdorner.cs
- DataGridViewColumnConverter.cs
- EntityProviderFactory.cs
- URI.cs
- WindowsMenu.cs
- Exceptions.cs
- FileDetails.cs
- DataGridViewUtilities.cs
- DataGridViewBand.cs
- TextParagraph.cs
- BindingNavigator.cs
- WebEvents.cs
- DataSourceNameHandler.cs
- Soap12FormatExtensions.cs
- ReadContentAsBinaryHelper.cs
- COM2FontConverter.cs
- DbFunctionCommandTree.cs
- KnownBoxes.cs
- ExpressionBinding.cs
- CompressedStack.cs
- ReflectionTypeLoadException.cs
- OleDbException.cs
- Serializer.cs
- IdentityNotMappedException.cs
- ApplicationException.cs
- RectAnimationClockResource.cs
- UpDownEvent.cs
- ListBoxItem.cs
- FixedStringLookup.cs
- BrowserTree.cs
- ContextTokenTypeConverter.cs
- TypefaceCollection.cs
- TemplatePartAttribute.cs
- MergeFilterQuery.cs
- GridViewUpdateEventArgs.cs
- MetadataArtifactLoaderCompositeFile.cs
- SafeMarshalContext.cs
- ConnectionInterfaceCollection.cs
- SerialPort.cs
- UniqueEventHelper.cs
- SelectionProviderWrapper.cs
- FileEnumerator.cs
- ImplicitInputBrush.cs