Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Base / System / Windows / UncommonField.cs / 1 / UncommonField.cs
using System; using System.Diagnostics; using System.Security.Permissions; using MS.Internal.WindowsBase; // for FriendAccessAllowed namespace System.Windows { ////// /// //CASRemoval:[StrongNameIdentityPermissionAttribute(SecurityAction.InheritanceDemand, PublicKey=Microsoft.Internal.BuildInfo.WCP_PUBLIC_KEY_STRING)] [FriendAccessAllowed] // Built into Base, used by Core and Framework internal class UncommonField{ /// /// Create a new UncommonField. /// public UncommonField() : this(default(T)) { } ////// Create a new UncommonField. /// /// The default value of the field. public UncommonField(T defaultValue) { _defaultValue = defaultValue; _hasBeenSet = false; lock (DependencyProperty.Synchronized) { _globalIndex = DependencyProperty.GetUniqueGlobalIndex(null, null); DependencyProperty.RegisteredPropertyList.Add(); } } ////// Write the given value onto a DependencyObject instance. /// /// The DependencyObject on which to set the value. /// The value to set. public void SetValue(DependencyObject instance, T value) { if (instance != null) { EntryIndex entryIndex = instance.LookupEntry(_globalIndex); // Set the value if it's not the default, otherwise remove the value. if (!object.ReferenceEquals(value, _defaultValue)) { instance.SetEffectiveValue(entryIndex, null /* dp */, _globalIndex, null /* metadata */, value, BaseValueSourceInternal.Local); _hasBeenSet = true; } else { instance.UnsetEffectiveValue(entryIndex, null /* dp */, null /* metadata */); } } else { throw new ArgumentNullException("instance"); } } ////// Read the value of this field on a DependencyObject instance. /// /// The DependencyObject from which to get the value. ///public T GetValue(DependencyObject instance) { if (instance != null) { if (_hasBeenSet) { EntryIndex entryIndex = instance.LookupEntry(_globalIndex); if (entryIndex.Found) { object value = instance.EffectiveValues[entryIndex.Index].LocalValue; if (value != DependencyProperty.UnsetValue) { return (T)value; } } return _defaultValue; } else { return _defaultValue; } } else { throw new ArgumentNullException("instance"); } } /// /// Clear this field from the given DependencyObject instance. /// /// public void ClearValue(DependencyObject instance) { if (instance != null) { EntryIndex entryIndex = instance.LookupEntry(_globalIndex); instance.UnsetEffectiveValue(entryIndex, null /* dp */, null /* metadata */); } else { throw new ArgumentNullException("instance"); } } #region Private Fields private T _defaultValue; private int _globalIndex; private bool _hasBeenSet; #endregion } } // 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
- BuildResultCache.cs
- CounterSampleCalculator.cs
- D3DImage.cs
- SvcMapFileLoader.cs
- ConfigurationConverterBase.cs
- ReachUIElementCollectionSerializer.cs
- ColorConvertedBitmap.cs
- CreateUserWizard.cs
- SqlMethodAttribute.cs
- DbProviderManifest.cs
- CaseExpr.cs
- ProgressBar.cs
- LogExtent.cs
- TransactionState.cs
- WebPartConnectionsCancelVerb.cs
- BCLDebug.cs
- PingReply.cs
- TraceUtility.cs
- WebConfigurationHost.cs
- MenuAdapter.cs
- ArgumentDirectionHelper.cs
- TypeReference.cs
- ConnectionInterfaceCollection.cs
- HwndSourceKeyboardInputSite.cs
- IntegerValidatorAttribute.cs
- GenericEnumerator.cs
- ObjectSecurity.cs
- PtsHost.cs
- StringFunctions.cs
- Vector.cs
- CommandHelpers.cs
- SplineQuaternionKeyFrame.cs
- SrgsGrammarCompiler.cs
- PrintEvent.cs
- SafeNativeMethods.cs
- EntityParameterCollection.cs
- _TransmitFileOverlappedAsyncResult.cs
- Evidence.cs
- AttachmentService.cs
- Vector.cs
- ColumnReorderedEventArgs.cs
- AttributeCollection.cs
- PartitionedStreamMerger.cs
- Membership.cs
- FrameworkObject.cs
- PhotoPrintingIntent.cs
- QilPatternFactory.cs
- Decoder.cs
- CodeCatchClauseCollection.cs
- AnnotationHelper.cs
- ListMarkerSourceInfo.cs
- BitmapFrameEncode.cs
- ValidateNames.cs
- ChainOfDependencies.cs
- OdbcConnection.cs
- SerializationSectionGroup.cs
- SoapMessage.cs
- ThreadAbortException.cs
- ContextMenuService.cs
- EntityContainerAssociationSetEnd.cs
- WinFormsUtils.cs
- ManipulationCompletedEventArgs.cs
- IdlingCommunicationPool.cs
- RadioButton.cs
- FormViewUpdatedEventArgs.cs
- httpstaticobjectscollection.cs
- XdrBuilder.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- TransactionFlowBindingElement.cs
- VirtualPath.cs
- ToolTipService.cs
- XmlWhitespace.cs
- DataRelationPropertyDescriptor.cs
- MetadataArtifactLoaderResource.cs
- XmlTypeAttribute.cs
- DateTimeUtil.cs
- TextRenderer.cs
- FixedTextSelectionProcessor.cs
- StringAnimationBase.cs
- PropertyGridEditorPart.cs
- StringConverter.cs
- ValidationSummary.cs
- ResourceExpressionBuilder.cs
- Grid.cs
- XmlIlVisitor.cs
- DocumentXPathNavigator.cs
- XmlSecureResolver.cs
- hresults.cs
- MessageQueuePermissionAttribute.cs
- LinqExpressionNormalizer.cs
- FixUpCollection.cs
- Token.cs
- ApplicationBuildProvider.cs
- SqlDependencyUtils.cs
- IssuedTokenClientCredential.cs
- InfiniteTimeSpanConverter.cs
- CopyAction.cs
- Errors.cs
- XmlAttributes.cs
- TargetFrameworkUtil.cs