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
- filewebrequest.cs
- BaseContextMenu.cs
- LongPath.cs
- GridEntry.cs
- TreeNodeClickEventArgs.cs
- SimpleParser.cs
- CheckBox.cs
- ErrorsHelper.cs
- CryptoProvider.cs
- AdornerHitTestResult.cs
- LinkTarget.cs
- FileInfo.cs
- GeneralTransform3D.cs
- InvalidAsynchronousStateException.cs
- DataColumnCollection.cs
- TdsParserHelperClasses.cs
- EventLogInternal.cs
- ConfigViewGenerator.cs
- InstrumentationTracker.cs
- ExecutionEngineException.cs
- RegexCode.cs
- CannotUnloadAppDomainException.cs
- XmlText.cs
- CssStyleCollection.cs
- ProcessHost.cs
- _StreamFramer.cs
- UnionCqlBlock.cs
- XPathAxisIterator.cs
- ProjectionPath.cs
- HandlerBase.cs
- StreamUpdate.cs
- SharedStatics.cs
- PreloadedPackages.cs
- TextLineBreak.cs
- MetadataItem.cs
- Pair.cs
- TextBoxBase.cs
- TcpProcessProtocolHandler.cs
- LinqDataSourceStatusEventArgs.cs
- StrokeSerializer.cs
- WebBrowser.cs
- ListenerElementsCollection.cs
- LogStream.cs
- Camera.cs
- SystemResourceHost.cs
- DetailsViewDeletedEventArgs.cs
- NativeMethods.cs
- KeyEvent.cs
- FormsAuthentication.cs
- ForwardPositionQuery.cs
- ListParagraph.cs
- CalculatedColumn.cs
- SqlServer2KCompatibilityCheck.cs
- ArrayWithOffset.cs
- DbDataReader.cs
- Operand.cs
- XmlNamespaceManager.cs
- DbMetaDataColumnNames.cs
- RIPEMD160Managed.cs
- PersonalizableAttribute.cs
- UnmanagedBitmapWrapper.cs
- SmiMetaData.cs
- ContextMenuAutomationPeer.cs
- RuntimeArgumentHandle.cs
- RegexFCD.cs
- EncoderFallback.cs
- PropertyFilterAttribute.cs
- WebScriptEnablingBehavior.cs
- Compiler.cs
- RegistrationContext.cs
- MailAddressCollection.cs
- SystemEvents.cs
- AmbientEnvironment.cs
- X509CertificateValidator.cs
- Catch.cs
- ServiceMetadataExtension.cs
- Button.cs
- EventEntry.cs
- SectionInput.cs
- DetailsViewCommandEventArgs.cs
- RectIndependentAnimationStorage.cs
- HttpPostedFileWrapper.cs
- ClrPerspective.cs
- CollaborationHelperFunctions.cs
- InternalBufferManager.cs
- BitmapEffectInputConnector.cs
- FacetChecker.cs
- AuthenticateEventArgs.cs
- TdsParameterSetter.cs
- AxWrapperGen.cs
- MulticastDelegate.cs
- ExpressionLexer.cs
- GeneralTransformCollection.cs
- QueryOutputWriter.cs
- CustomAttribute.cs
- ResXDataNode.cs
- XmlILConstructAnalyzer.cs
- MetadataFile.cs
- Encoding.cs
- ConfigurationValues.cs