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
- Annotation.cs
- ResourceSet.cs
- SimpleBitVector32.cs
- BitmapEffectvisualstate.cs
- TraceProvider.cs
- AssemblySettingAttributes.cs
- ReferencedType.cs
- NativeMethods.cs
- XmlSchemaComplexContentExtension.cs
- ColorConvertedBitmapExtension.cs
- SpecialFolderEnumConverter.cs
- IncomingWebRequestContext.cs
- GradientSpreadMethodValidation.cs
- NativeMethods.cs
- XmlDataSource.cs
- NonSerializedAttribute.cs
- InternalEnumValidator.cs
- Sql8ConformanceChecker.cs
- PartialTrustVisibleAssembliesSection.cs
- ProfileGroupSettingsCollection.cs
- HealthMonitoringSection.cs
- SessionParameter.cs
- PointCollectionValueSerializer.cs
- PropertyValueUIItem.cs
- PolyQuadraticBezierSegment.cs
- DocumentGridContextMenu.cs
- HtmlControl.cs
- CodeAttributeArgumentCollection.cs
- DataFormats.cs
- ImageCodecInfoPrivate.cs
- COM2ExtendedBrowsingHandler.cs
- VectorAnimationBase.cs
- PageContent.cs
- TemplateNameScope.cs
- SerializationObjectManager.cs
- CreateUserWizardStep.cs
- Random.cs
- SqlWorkflowInstanceStore.cs
- IWorkflowDebuggerService.cs
- GetWinFXPath.cs
- CodeTypeConstructor.cs
- BinaryQueryOperator.cs
- TabItemWrapperAutomationPeer.cs
- TemplatedAdorner.cs
- XmlUnspecifiedAttribute.cs
- QueryOutputWriter.cs
- CodeBlockBuilder.cs
- TraceFilter.cs
- BasePattern.cs
- ItemCheckEvent.cs
- ManualResetEvent.cs
- Point3D.cs
- UnionExpr.cs
- InstancePersistenceEvent.cs
- BooleanExpr.cs
- SoapIncludeAttribute.cs
- OperationResponse.cs
- UInt16Converter.cs
- CodeAccessPermission.cs
- DPTypeDescriptorContext.cs
- XmlBinaryReader.cs
- TextEffectResolver.cs
- X509InitiatorCertificateClientElement.cs
- WindowsAuthenticationEventArgs.cs
- __Error.cs
- DataSourceCache.cs
- ControlParameter.cs
- ChangeBlockUndoRecord.cs
- InputLangChangeEvent.cs
- TextAdaptor.cs
- TextDecorationCollectionConverter.cs
- ListSourceHelper.cs
- AnimatedTypeHelpers.cs
- NativeMethods.cs
- SecurityHelper.cs
- LinkButton.cs
- FrugalList.cs
- CellRelation.cs
- Repeater.cs
- RawStylusSystemGestureInputReport.cs
- UserInitiatedNavigationPermission.cs
- ApplicationContext.cs
- ExternalException.cs
- TextDecoration.cs
- ObjectPropertyMapping.cs
- ScriptManagerProxy.cs
- XNameConverter.cs
- PropertyEmitter.cs
- PropertyChangedEventManager.cs
- CommandField.cs
- AsymmetricKeyExchangeDeformatter.cs
- ContextStack.cs
- AuthenticationService.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- HwndHostAutomationPeer.cs
- SpeechRecognizer.cs
- RemotingAttributes.cs
- CharUnicodeInfo.cs
- GroupLabel.cs
- BackStopAuthenticationModule.cs