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
- WinFormsUtils.cs
- TextEffectResolver.cs
- HttpHandlerAction.cs
- CaseInsensitiveHashCodeProvider.cs
- BoundPropertyEntry.cs
- RoleService.cs
- TreeViewAutomationPeer.cs
- ConsumerConnectionPoint.cs
- ClusterRegistryConfigurationProvider.cs
- SecurityTokenSerializer.cs
- DiagnosticsConfigurationHandler.cs
- PriorityBindingExpression.cs
- DeclarativeCatalogPart.cs
- ExceptionUtility.cs
- ToolTip.cs
- ResourceSetExpression.cs
- AttributeUsageAttribute.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- FreeFormDragDropManager.cs
- AdornerLayer.cs
- ScrollPattern.cs
- SessionPageStatePersister.cs
- DocumentsTrace.cs
- ListViewPagedDataSource.cs
- PositiveTimeSpanValidatorAttribute.cs
- InstanceData.cs
- GetWinFXPath.cs
- HandleRef.cs
- XmlSchemaAttributeGroup.cs
- XamlPathDataSerializer.cs
- SmiTypedGetterSetter.cs
- VisualStyleInformation.cs
- DecimalStorage.cs
- XmlSchemaAttribute.cs
- CodeCastExpression.cs
- LeaseManager.cs
- rsa.cs
- DataTableExtensions.cs
- VSWCFServiceContractGenerator.cs
- ImageInfo.cs
- MouseButtonEventArgs.cs
- SQLGuidStorage.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- TextProviderWrapper.cs
- SettingsBindableAttribute.cs
- CultureData.cs
- UInt64Storage.cs
- AccessorTable.cs
- WorkflowApplication.cs
- EdmRelationshipRoleAttribute.cs
- RouteValueDictionary.cs
- ObjectViewEntityCollectionData.cs
- CodeLabeledStatement.cs
- securitycriticaldataformultiplegetandset.cs
- CodeMethodInvokeExpression.cs
- XmlSchemas.cs
- SqlCacheDependencySection.cs
- Mapping.cs
- RotationValidation.cs
- BlurBitmapEffect.cs
- UserControl.cs
- WhitespaceRuleReader.cs
- ToolStripTextBox.cs
- FormViewUpdatedEventArgs.cs
- AggregateNode.cs
- InProcStateClientManager.cs
- SqlDesignerDataSourceView.cs
- DtrList.cs
- RoleServiceManager.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- GPRECT.cs
- FixedSOMPageElement.cs
- PackWebRequestFactory.cs
- MetricEntry.cs
- DataKeyArray.cs
- SchemaTypeEmitter.cs
- mediapermission.cs
- DnsElement.cs
- Configuration.cs
- Cursor.cs
- SqlNotificationRequest.cs
- FileDialog.cs
- SerializerWriterEventHandlers.cs
- XamlFigureLengthSerializer.cs
- ControlBuilder.cs
- TraceHelpers.cs
- SqlCharStream.cs
- SHA1.cs
- LineMetrics.cs
- printdlgexmarshaler.cs
- ReaderOutput.cs
- __FastResourceComparer.cs
- Operators.cs
- Stopwatch.cs
- MailMessage.cs
- ProfileGroupSettingsCollection.cs
- HandlerMappingMemo.cs
- CapiSafeHandles.cs
- Pipe.cs
- RayHitTestParameters.cs