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
- SqlClientWrapperSmiStreamChars.cs
- ToolStripPanelCell.cs
- Validator.cs
- SoapIgnoreAttribute.cs
- ReceiveSecurityHeaderElementManager.cs
- TextRange.cs
- DiagnosticTraceSource.cs
- XmlArrayItemAttribute.cs
- FactoryGenerator.cs
- GridViewRowEventArgs.cs
- XAMLParseException.cs
- HGlobalSafeHandle.cs
- Size3DConverter.cs
- FlatButtonAppearance.cs
- UserNamePasswordClientCredential.cs
- ISFTagAndGuidCache.cs
- FullTextLine.cs
- ListBindingConverter.cs
- PerformanceCounterLib.cs
- FileDataSourceCache.cs
- ResourceExpression.cs
- ColumnReorderedEventArgs.cs
- ScrollChrome.cs
- DataGridCommandEventArgs.cs
- StringValidatorAttribute.cs
- IncrementalCompileAnalyzer.cs
- PersistenceTypeAttribute.cs
- Html32TextWriter.cs
- GestureRecognizer.cs
- _OverlappedAsyncResult.cs
- HiddenField.cs
- Vector3DCollectionConverter.cs
- CachedPathData.cs
- SqlDataSource.cs
- ExpressionBindingCollection.cs
- WindowsContainer.cs
- Propagator.Evaluator.cs
- ProjectedSlot.cs
- MediaSystem.cs
- cache.cs
- UidManager.cs
- CounterSetInstanceCounterDataSet.cs
- RegexMatch.cs
- OpacityConverter.cs
- FontResourceCache.cs
- StrokeCollection.cs
- StringStorage.cs
- MemberInfoSerializationHolder.cs
- AssociationType.cs
- PrinterResolution.cs
- ExtendedProtectionPolicyTypeConverter.cs
- PartialArray.cs
- Localizer.cs
- DataSetMappper.cs
- TransactionScope.cs
- CustomCategoryAttribute.cs
- FrugalMap.cs
- Vector.cs
- CodeIdentifier.cs
- KernelTypeValidation.cs
- GridViewPageEventArgs.cs
- SqlInternalConnectionTds.cs
- DurableErrorHandler.cs
- BitConverter.cs
- IpcClientManager.cs
- PipeConnection.cs
- FormsAuthenticationUserCollection.cs
- Int32Collection.cs
- PackageRelationshipSelector.cs
- DependentList.cs
- UnsignedPublishLicense.cs
- XmlTextReaderImplHelpers.cs
- HttpClientChannel.cs
- FamilyTypeface.cs
- EncryptedPackageFilter.cs
- XmlDataSourceView.cs
- WinEventQueueItem.cs
- ToolStripPanelRow.cs
- BaseCodeDomTreeGenerator.cs
- ToolStripStatusLabel.cs
- OrderedParallelQuery.cs
- Context.cs
- OleAutBinder.cs
- ToolStripItemRenderEventArgs.cs
- WebUtility.cs
- KerberosTicketHashIdentifierClause.cs
- ArrayConverter.cs
- LassoHelper.cs
- SerializableAttribute.cs
- BitmapInitialize.cs
- Comparer.cs
- XmlILStorageConverter.cs
- AssemblyAssociatedContentFileAttribute.cs
- ConfigXmlCDataSection.cs
- HttpCachePolicy.cs
- HotSpot.cs
- AssemblyNameProxy.cs
- AssociationSetEnd.cs
- StylusDownEventArgs.cs
- PhysicalOps.cs