Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / PropertyMetadata.cs / 1305376 / PropertyMetadata.cs
using System; using System.Collections.Generic; namespace System.Workflow.ComponentModel { [Flags] public enum DependencyPropertyOptions : byte { Default = 1, ReadOnly = 2, Optional = 4, Metadata = 8, NonSerialized = 16, DelegateProperty = 32 } //overrides so you dont need to do inheritence public delegate object GetValueOverride(DependencyObject d); public delegate void SetValueOverride(DependencyObject d, object value); public class PropertyMetadata { private Attribute[] attributes = null; private object defaultValue = null; private DependencyPropertyOptions options = DependencyPropertyOptions.Default; private bool propertySealed = false; private GetValueOverride getValueOverride = null; private SetValueOverride setValueOverride = null; private bool shouldAlwaysCallOverride = false; public PropertyMetadata() { } public PropertyMetadata(object defaultValue) : this(defaultValue, default(DependencyPropertyOptions)) { } public PropertyMetadata(DependencyPropertyOptions options) : this( null, options) { } public PropertyMetadata(object defaultValue, DependencyPropertyOptions options) : this(defaultValue, options, null, null, new Attribute[] { }) { } public PropertyMetadata(object defaultValue, params Attribute[] attributes) : this( defaultValue, default(DependencyPropertyOptions), null , null, attributes) { } public PropertyMetadata(object defaultValue, DependencyPropertyOptions options, params Attribute[] attributes) : this(defaultValue, options, null, null, attributes) { } public PropertyMetadata(DependencyPropertyOptions options, params Attribute[] attributes) : this(null, options, null, null, attributes) { } public PropertyMetadata(params Attribute[] attributes) : this(null, default(DependencyPropertyOptions), null, null, attributes) { } public PropertyMetadata(object defaultValue, DependencyPropertyOptions options, GetValueOverride getValueOverride, SetValueOverride setValueOverride) : this(defaultValue, options, getValueOverride, setValueOverride, new Attribute[] { }) { } public PropertyMetadata(object defaultValue, DependencyPropertyOptions options, GetValueOverride getValueOverride, SetValueOverride setValueOverride, params Attribute[] attributes) : this(defaultValue, options, getValueOverride, setValueOverride, false, attributes) { } internal PropertyMetadata(object defaultValue, DependencyPropertyOptions options, GetValueOverride getValueOverride, SetValueOverride setValueOverride, bool shouldAlwaysCallOverride, params Attribute[] attributes) { this.defaultValue = defaultValue; this.options = options; this.getValueOverride = getValueOverride; this.setValueOverride = setValueOverride; this.shouldAlwaysCallOverride = shouldAlwaysCallOverride; this.attributes = attributes; } public Attribute[] GetAttributes() { return GetAttributes(null); } public Attribute[] GetAttributes(Type attributeType) { Listattributes = new List (); if (this.attributes != null) { foreach (Attribute attribute in this.attributes) { if (attribute == null) continue; if (attributeType == null || attribute.GetType() == attributeType) attributes.Add(attribute); } } return attributes.ToArray(); } public object DefaultValue { get { return this.defaultValue; } set { if (this.propertySealed) throw new InvalidOperationException(SR.GetString(SR.Error_SealedPropertyMetadata)); this.defaultValue = value; } } public DependencyPropertyOptions Options { get { return this.options; } set { if (this.propertySealed) throw new InvalidOperationException(SR.GetString(SR.Error_SealedPropertyMetadata)); this.options = value; } } public bool IsMetaProperty { get { return (this.options & DependencyPropertyOptions.Metadata) > 0; } } public bool IsNonSerialized { get { return (this.options & DependencyPropertyOptions.NonSerialized) > 0; } } public bool IsReadOnly { get { return (this.options & DependencyPropertyOptions.ReadOnly) > 0; } } public GetValueOverride GetValueOverride { get { return this.getValueOverride; } set { if (this.propertySealed) throw new InvalidOperationException(SR.GetString(SR.Error_SealedPropertyMetadata)); this.getValueOverride = value; } } public SetValueOverride SetValueOverride { get { return this.setValueOverride; } set { if (this.propertySealed) throw new InvalidOperationException(SR.GetString(SR.Error_SealedPropertyMetadata)); this.setValueOverride = value; } } protected virtual void OnApply(DependencyProperty dependencyProperty, Type targetType) { } protected bool IsSealed { get { return this.propertySealed; } } internal bool ShouldAlwaysCallOverride { get { return shouldAlwaysCallOverride; } } internal void Seal(DependencyProperty dependencyProperty, Type targetType) { OnApply(dependencyProperty, targetType); this.propertySealed = true; } } } // 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
- Vector3DIndependentAnimationStorage.cs
- SmiEventSink_DeferedProcessing.cs
- LineInfo.cs
- VirtualPathProvider.cs
- MdbDataFileEditor.cs
- IFlowDocumentViewer.cs
- XmlUrlResolver.cs
- ParameterCollection.cs
- XmlCharType.cs
- PartialCachingAttribute.cs
- PropertyDescriptorCollection.cs
- Visitor.cs
- HttpHandlersSection.cs
- UnlockCardRequest.cs
- TileBrush.cs
- MatrixTransform3D.cs
- SystemDiagnosticsSection.cs
- PageFunction.cs
- Floater.cs
- StatusBarDrawItemEvent.cs
- TableRow.cs
- serverconfig.cs
- KeyInstance.cs
- OutputCacheProfileCollection.cs
- ByteStack.cs
- DirectionalLight.cs
- TemplateControlParser.cs
- NonVisualControlAttribute.cs
- MatrixConverter.cs
- DesignerSerializationVisibilityAttribute.cs
- ResourceWriter.cs
- RegexWriter.cs
- ScriptResourceAttribute.cs
- CodeSubDirectory.cs
- NameValueConfigurationElement.cs
- SystemIPGlobalProperties.cs
- RestHandler.cs
- EdmValidator.cs
- SqlCharStream.cs
- FixedPageAutomationPeer.cs
- XamlSerializerUtil.cs
- HostExecutionContextManager.cs
- WebPartEditorCancelVerb.cs
- CuspData.cs
- WindowsGraphics2.cs
- MatrixConverter.cs
- DbConnectionPoolCounters.cs
- AttributeQuery.cs
- ButtonField.cs
- SamlConditions.cs
- DataBinder.cs
- SoapEnvelopeProcessingElement.cs
- ServiceOperationViewControl.cs
- CodeArrayCreateExpression.cs
- SQLString.cs
- LambdaSerializationException.cs
- Dynamic.cs
- ScrollData.cs
- DbModificationCommandTree.cs
- ApplicationSettingsBase.cs
- HttpContext.cs
- ProfileParameter.cs
- SqlWriter.cs
- ProgressPage.cs
- DatatypeImplementation.cs
- ContentType.cs
- BrowserTree.cs
- TemplateInstanceAttribute.cs
- ConditionalAttribute.cs
- DynamicDiscoveryDocument.cs
- MetadataExchangeBindings.cs
- BuildResultCache.cs
- ItemPager.cs
- InfoCardPolicy.cs
- PointAnimationClockResource.cs
- HelloOperation11AsyncResult.cs
- KeyConverter.cs
- ShapeTypeface.cs
- MsmqIntegrationChannelListener.cs
- ListControlBoundActionList.cs
- HashSetDebugView.cs
- VectorAnimation.cs
- BitmapEffectRenderDataResource.cs
- DependencyObjectProvider.cs
- SignatureTargetIdManager.cs
- XmlDataProvider.cs
- PingReply.cs
- AccessDataSource.cs
- GroupBoxRenderer.cs
- DataGrid.cs
- InputMethod.cs
- MenuAdapter.cs
- HashFinalRequest.cs
- DataGridTextBoxColumn.cs
- PartialClassGenerationTaskInternal.cs
- WindowsTab.cs
- IsolatedStorageException.cs
- __Error.cs
- DataSourceSelectArguments.cs
- PrintControllerWithStatusDialog.cs