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
- PropertyGroupDescription.cs
- StringValidator.cs
- ButtonChrome.cs
- MsmqBindingElementBase.cs
- SoapProtocolReflector.cs
- UserInitiatedNavigationPermission.cs
- KoreanLunisolarCalendar.cs
- Schedule.cs
- DateTimePicker.cs
- StateManagedCollection.cs
- WebPartHeaderCloseVerb.cs
- ValueUnavailableException.cs
- CultureNotFoundException.cs
- SelectionUIService.cs
- returneventsaver.cs
- SmtpLoginAuthenticationModule.cs
- ConsoleKeyInfo.cs
- RuntimeHandles.cs
- SendReply.cs
- WebRequestModuleElementCollection.cs
- CodeDirectiveCollection.cs
- ActiveDesignSurfaceEvent.cs
- BamlRecordWriter.cs
- DataContractAttribute.cs
- WebBrowserProgressChangedEventHandler.cs
- PhysicalFontFamily.cs
- OutputCacheSection.cs
- SqlParameterCollection.cs
- HttpCapabilitiesSectionHandler.cs
- SerialReceived.cs
- DocumentPageView.cs
- MeasureItemEvent.cs
- KnownIds.cs
- SearchExpression.cs
- ExpandableObjectConverter.cs
- RuntimeConfigLKG.cs
- TargetParameterCountException.cs
- AsymmetricSecurityProtocol.cs
- DbParameterCollection.cs
- RightsManagementEncryptedStream.cs
- WebProxyScriptElement.cs
- DesignerObject.cs
- ToolStripStatusLabel.cs
- AdCreatedEventArgs.cs
- ISCIIEncoding.cs
- DrawingServices.cs
- DBCSCodePageEncoding.cs
- elementinformation.cs
- ProbeMatches11.cs
- GlobalizationSection.cs
- AsyncPostBackErrorEventArgs.cs
- NewItemsContextMenuStrip.cs
- WindowsImpersonationContext.cs
- OdbcConnectionString.cs
- SmtpMail.cs
- OdbcConnectionStringbuilder.cs
- FieldDescriptor.cs
- ToolBarOverflowPanel.cs
- StructuredTypeEmitter.cs
- DecimalConverter.cs
- ButtonBaseAdapter.cs
- ChangePasswordAutoFormat.cs
- ArraySortHelper.cs
- ServiceNotStartedException.cs
- LinqDataSourceInsertEventArgs.cs
- WebPartMovingEventArgs.cs
- StringToken.cs
- StorageFunctionMapping.cs
- UpdateProgress.cs
- DefaultAutoFieldGenerator.cs
- SafeTokenHandle.cs
- PathSegmentCollection.cs
- XmlWhitespace.cs
- LifetimeServices.cs
- FormViewUpdateEventArgs.cs
- DoubleAnimationBase.cs
- TrackingProfile.cs
- SequenceFullException.cs
- ColorBlend.cs
- DisplayInformation.cs
- ChangeInterceptorAttribute.cs
- SupportingTokenDuplexChannel.cs
- __Filters.cs
- AssemblyBuilder.cs
- FileEnumerator.cs
- CodeTypeDeclarationCollection.cs
- ViewgenContext.cs
- ColumnCollectionEditor.cs
- DCSafeHandle.cs
- NamedPermissionSet.cs
- CacheAxisQuery.cs
- FlagsAttribute.cs
- LinqDataSource.cs
- Ref.cs
- ZipIOLocalFileDataDescriptor.cs
- CachedRequestParams.cs
- AffineTransform3D.cs
- DataStreamFromComStream.cs
- RelationshipSet.cs
- SerializationSectionGroup.cs