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)
{
List attributes = 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
- SafeMILHandleMemoryPressure.cs
- ConnectionStringSettingsCollection.cs
- sqlser.cs
- SMSvcHost.cs
- HttpCookieCollection.cs
- NonceCache.cs
- TemplateBamlRecordReader.cs
- CommandValueSerializer.cs
- CqlWriter.cs
- EpmSyndicationContentSerializer.cs
- SqlCommandBuilder.cs
- ComponentEditorPage.cs
- PeerTransportListenAddressValidatorAttribute.cs
- CodeGroup.cs
- SqlDataSourceCache.cs
- XmlHierarchicalEnumerable.cs
- MorphHelper.cs
- AudioFormatConverter.cs
- HostedNamedPipeTransportManager.cs
- URL.cs
- FieldNameLookup.cs
- DateBoldEvent.cs
- _RegBlobWebProxyDataBuilder.cs
- JoinQueryOperator.cs
- EventsTab.cs
- XmlDataImplementation.cs
- LoginCancelEventArgs.cs
- ListenerServiceInstallComponent.cs
- XmlChildNodes.cs
- BasePropertyDescriptor.cs
- XPathNode.cs
- DateTimeOffsetConverter.cs
- panel.cs
- ImageListImageEditor.cs
- AttachInfo.cs
- XPathAncestorIterator.cs
- TextRangeEdit.cs
- LinkDescriptor.cs
- CustomCategoryAttribute.cs
- CreateParams.cs
- TransactionInterop.cs
- CodeTypeReferenceExpression.cs
- EventMap.cs
- MDIControlStrip.cs
- SystemFonts.cs
- ValidationUtility.cs
- Substitution.cs
- PlaceHolder.cs
- DbConnectionHelper.cs
- ThemeableAttribute.cs
- SessionState.cs
- DataGridParentRows.cs
- RequestCacheEntry.cs
- EnumConverter.cs
- ConfigurationStrings.cs
- DateTimeStorage.cs
- HttpListener.cs
- Vertex.cs
- MemberHolder.cs
- SessionStateModule.cs
- ProjectionPruner.cs
- ZipIORawDataFileBlock.cs
- Pointer.cs
- DelimitedListTraceListener.cs
- SystemColors.cs
- OperandQuery.cs
- PartitionerStatic.cs
- DesignerHelpers.cs
- AliasExpr.cs
- BamlVersionHeader.cs
- DefaultEventAttribute.cs
- DesignTimeTemplateParser.cs
- SchemaMapping.cs
- HttpWriter.cs
- DescendentsWalkerBase.cs
- XmlDataSource.cs
- InvalidPrinterException.cs
- TypeSystemProvider.cs
- ByteConverter.cs
- basevalidator.cs
- SystemWebSectionGroup.cs
- TextModifier.cs
- ClientCultureInfo.cs
- counter.cs
- PreservationFileWriter.cs
- XmlReflectionImporter.cs
- DefaultHttpHandler.cs
- ProgramNode.cs
- RootBrowserWindowAutomationPeer.cs
- WebBrowserProgressChangedEventHandler.cs
- HitTestParameters3D.cs
- SizeKeyFrameCollection.cs
- PersonalizationProviderHelper.cs
- SqlMethods.cs
- SiteMapNode.cs
- SqlGenericUtil.cs
- MessageEncodingBindingElementImporter.cs
- SiteMembershipCondition.cs
- XmlBinaryReader.cs
- HostProtectionException.cs