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
- HtmlSelect.cs
- MetadataSet.cs
- AuthenticationService.cs
- HtmlInputButton.cs
- CompiledQuery.cs
- PointConverter.cs
- Dynamic.cs
- SecurityUtils.cs
- AddInController.cs
- EdmComplexTypeAttribute.cs
- WebInvokeAttribute.cs
- GradientStop.cs
- XmlSchemaAnnotation.cs
- TextUtf8RawTextWriter.cs
- PropertyDescriptor.cs
- SizeAnimation.cs
- NodeCounter.cs
- TextViewBase.cs
- ControlCollection.cs
- FormatterServices.cs
- Menu.cs
- QueryCacheKey.cs
- SynchronizationLockException.cs
- SimpleColumnProvider.cs
- MetabaseServerConfig.cs
- TabItem.cs
- CompilerState.cs
- BlurBitmapEffect.cs
- TickBar.cs
- CodeGeneratorAttribute.cs
- DataListCommandEventArgs.cs
- WindowsClientCredential.cs
- NonClientArea.cs
- AvTraceFormat.cs
- AsymmetricKeyExchangeDeformatter.cs
- URLString.cs
- ClientBuildManagerCallback.cs
- MetadataItem.cs
- XamlSerializerUtil.cs
- ServiceBusyException.cs
- WindowsPen.cs
- COAUTHIDENTITY.cs
- ObjectQueryProvider.cs
- InstanceCreationEditor.cs
- DropDownHolder.cs
- HttpContextBase.cs
- JsonDeserializer.cs
- ClientEventManager.cs
- SqlTriggerAttribute.cs
- QuadraticEase.cs
- SamlEvidence.cs
- SmiGettersStream.cs
- InternalTransaction.cs
- Events.cs
- GridViewDeletedEventArgs.cs
- HeaderedItemsControl.cs
- DataException.cs
- RegisteredDisposeScript.cs
- ToolStripItemDataObject.cs
- dtdvalidator.cs
- HtmlImage.cs
- ColumnWidthChangingEvent.cs
- LoginView.cs
- ClassicBorderDecorator.cs
- DataGridColumnCollection.cs
- NumericUpDownAcceleration.cs
- UIElement.cs
- LayoutSettings.cs
- FeatureAttribute.cs
- ThumbButtonInfo.cs
- ServiceSecurityContext.cs
- LinqDataSourceValidationException.cs
- SafeViewOfFileHandle.cs
- MachineKeySection.cs
- HWStack.cs
- RtfToken.cs
- FontInfo.cs
- X509Utils.cs
- BitmapEffectDrawingContextState.cs
- SerialPort.cs
- TextReader.cs
- _ListenerResponseStream.cs
- invalidudtexception.cs
- ServerIdentity.cs
- PageThemeBuildProvider.cs
- SessionSwitchEventArgs.cs
- FormatConvertedBitmap.cs
- RemoveFromCollection.cs
- RoleService.cs
- CoTaskMemUnicodeSafeHandle.cs
- ToggleButton.cs
- DeflateStream.cs
- DiscoveryClientElement.cs
- ConfigurationSectionGroupCollection.cs
- RepeatButtonAutomationPeer.cs
- MenuItemCollection.cs
- DefaultAssemblyResolver.cs
- ToolStripDropDownMenu.cs
- UserControlBuildProvider.cs
- HttpServerVarsCollection.cs