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
- XmlFormatWriterGenerator.cs
- CounterSetInstanceCounterDataSet.cs
- WebPartUserCapability.cs
- BooleanToVisibilityConverter.cs
- WebServiceHandler.cs
- LambdaCompiler.Lambda.cs
- Utils.cs
- IconConverter.cs
- XhtmlBasicObjectListAdapter.cs
- DmlSqlGenerator.cs
- CommandID.cs
- TransformerInfoCollection.cs
- GeometryDrawing.cs
- WindowsImpersonationContext.cs
- MatrixTransform.cs
- TraceRecords.cs
- propertytag.cs
- FileSecurity.cs
- SiteMapNodeItemEventArgs.cs
- DataPager.cs
- NonBatchDirectoryCompiler.cs
- HttpListenerRequest.cs
- NavigationEventArgs.cs
- HttpConfigurationSystem.cs
- Glyph.cs
- WorkflowApplicationUnloadedException.cs
- ActiveXSite.cs
- ActivityDesignerHighlighter.cs
- SortExpressionBuilder.cs
- clipboard.cs
- SQLInt32Storage.cs
- SocketPermission.cs
- PersonalizationEntry.cs
- SiteMembershipCondition.cs
- WorkflowDataContext.cs
- EventDescriptor.cs
- Speller.cs
- COSERVERINFO.cs
- PathData.cs
- SingleAnimationUsingKeyFrames.cs
- EventItfInfo.cs
- SqlConnectionPoolProviderInfo.cs
- Configuration.cs
- CaseInsensitiveHashCodeProvider.cs
- IImplicitResourceProvider.cs
- PaginationProgressEventArgs.cs
- TranslateTransform.cs
- LateBoundBitmapDecoder.cs
- CompilationUtil.cs
- _FtpControlStream.cs
- ReachPrintTicketSerializerAsync.cs
- ECDiffieHellmanCng.cs
- WebPartConnection.cs
- CodePrimitiveExpression.cs
- UnsafeNativeMethods.cs
- VBIdentifierNameEditor.cs
- SqlUserDefinedAggregateAttribute.cs
- DeflateStream.cs
- infer.cs
- recordstatefactory.cs
- ExpandCollapseProviderWrapper.cs
- PopupEventArgs.cs
- ConnectionPoolManager.cs
- WorkflowInstanceExtensionManager.cs
- RecordBuilder.cs
- QuaternionValueSerializer.cs
- AndMessageFilter.cs
- OleServicesContext.cs
- TextEncodedRawTextWriter.cs
- MediaCommands.cs
- TypeInitializationException.cs
- IconConverter.cs
- LabelLiteral.cs
- updatecommandorderer.cs
- XmlReaderDelegator.cs
- EncryptedHeaderXml.cs
- NonParentingControl.cs
- GenericTextProperties.cs
- ToolboxItemLoader.cs
- XmlChildEnumerator.cs
- FixedHyperLink.cs
- CryptoSession.cs
- CompilerWrapper.cs
- ExceptionValidationRule.cs
- StringDictionary.cs
- VarInfo.cs
- PersonalizationStateQuery.cs
- CodeDelegateInvokeExpression.cs
- XPathAncestorIterator.cs
- HtmlTableCell.cs
- DynamicDiscoSearcher.cs
- SrgsElementList.cs
- XmlValidatingReaderImpl.cs
- TextContainer.cs
- SelfIssuedAuthRSAPKCS1SignatureDeformatter.cs
- ControlPersister.cs
- RootBrowserWindowProxy.cs
- PageAsyncTask.cs
- HtmlTextViewAdapter.cs
- CodeLabeledStatement.cs