Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / Model / AttachedProperty.cs / 1305376 / AttachedProperty.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation.Model { using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Activities.Presentation.Model; using System.Runtime; using System.Diagnostics.CodeAnalysis; public abstract class AttachedProperty { Type ownerType = typeof(object); [SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods", Justification = "By design.")] public abstract Type Type { get; } public abstract bool IsReadOnly { get; } public bool IsBrowsable { get; set; } public string Name { get; set; } public Type OwnerType { get { return this.ownerType; } set { this.ownerType = value; } } public abstract object GetValue(ModelItem modelItem); public abstract void SetValue(ModelItem modelItem, object value); public abstract void ResetValue(ModelItem modelItem); public void NotifyPropertyChanged(ModelItem modelItem) { if (null != modelItem) { ((IModelTreeItem)modelItem).OnPropertyChanged(this.Name); } } } public class AttachedProperty: AttachedProperty { [Fx.Tag.KnownXamlExternal] public Func Getter { get; set; } [Fx.Tag.KnownXamlExternal] public Action Setter { get; set; } public override Type Type { get { return typeof(T); } } public override bool IsReadOnly { get { return (this.Setter == null); } } public override object GetValue(ModelItem modelItem) { return this.Getter(modelItem); } public override void SetValue(ModelItem modelItem, object Value) { if (this.IsReadOnly) { throw FxTrace.Exception.AsError(new InvalidOperationException(SR.PropertyIsReadOnly)); } this.Setter(modelItem, (T)Value); this.NotifyPropertyChanged(modelItem); } public override void ResetValue(ModelItem modelItem) { SetValue(modelItem, default(T)); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ServiceObjectContainer.cs
- LocatorGroup.cs
- AspNetSynchronizationContext.cs
- SaveFileDialog.cs
- ListViewGroupCollectionEditor.cs
- ShapeTypeface.cs
- DesignerVerb.cs
- ByteStorage.cs
- StickyNoteHelper.cs
- ContentPropertyAttribute.cs
- RenderDataDrawingContext.cs
- DataSourceCollectionBase.cs
- BooleanFunctions.cs
- EventRouteFactory.cs
- CallbackValidatorAttribute.cs
- OneWayElement.cs
- CellParaClient.cs
- HtmlTernaryTree.cs
- ActivityXamlServices.cs
- ContainerUIElement3D.cs
- ISCIIEncoding.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- ValidatedControlConverter.cs
- WSUtilitySpecificationVersion.cs
- WebDisplayNameAttribute.cs
- DBPropSet.cs
- UIInitializationException.cs
- TreeView.cs
- ReadOnlyState.cs
- ChildTable.cs
- ByteAnimation.cs
- TableRowCollection.cs
- AdornerDecorator.cs
- GridView.cs
- UndirectedGraph.cs
- CornerRadiusConverter.cs
- SerializationFieldInfo.cs
- GeneralTransform.cs
- FontEmbeddingManager.cs
- XmlSchemaImport.cs
- MatrixTransform.cs
- ListControlDesigner.cs
- DecimalAnimationBase.cs
- XpsS0ValidatingLoader.cs
- SystemIPInterfaceProperties.cs
- IndexOutOfRangeException.cs
- RuntimeWrappedException.cs
- SqlDataRecord.cs
- StringConcat.cs
- HandlerFactoryWrapper.cs
- VirtualPathData.cs
- SkipQueryOptionExpression.cs
- EndpointAddressMessageFilter.cs
- SponsorHelper.cs
- ReliableMessagingVersion.cs
- BlobPersonalizationState.cs
- Block.cs
- DesignRelation.cs
- BindingNavigator.cs
- DependencyPropertyChangedEventArgs.cs
- BuildDependencySet.cs
- CodeTypeDeclaration.cs
- DataGridColumn.cs
- ProgressBar.cs
- SimplePropertyEntry.cs
- XmlAggregates.cs
- ActivityCodeDomReferenceService.cs
- MailSettingsSection.cs
- mediaeventshelper.cs
- ExecutionProperties.cs
- CapabilitiesAssignment.cs
- ArithmeticException.cs
- ColorAnimation.cs
- RepeatBehaviorConverter.cs
- KeyboardNavigation.cs
- ContractHandle.cs
- RawKeyboardInputReport.cs
- SemaphoreSecurity.cs
- CombinedHttpChannel.cs
- AutoGeneratedField.cs
- DataViewManager.cs
- SqlConnectionFactory.cs
- WebPartVerbCollection.cs
- CounterSample.cs
- Pen.cs
- Label.cs
- CursorInteropHelper.cs
- RootBrowserWindow.cs
- CompoundFileStreamReference.cs
- ClassicBorderDecorator.cs
- TagPrefixAttribute.cs
- Point3D.cs
- ObjectCloneHelper.cs
- ServiceInfo.cs
- StringExpressionSet.cs
- bidPrivateBase.cs
- TaskForm.cs
- EventRouteFactory.cs
- WindowsToolbar.cs
- SortQuery.cs