Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------- // 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
- VisualTreeUtils.cs
- RefreshPropertiesAttribute.cs
- FileChangesMonitor.cs
- ScrollViewerAutomationPeer.cs
- ListBoxItemAutomationPeer.cs
- Base64Stream.cs
- CodeGenerator.cs
- FilterQuery.cs
- RectangleGeometry.cs
- TextParagraphCache.cs
- ObjectListField.cs
- Buffer.cs
- WorkerRequest.cs
- RecoverInstanceLocksCommand.cs
- DesignerEditorPartChrome.cs
- FileDialog.cs
- SystemEvents.cs
- SmiEventSink_DeferedProcessing.cs
- DoWorkEventArgs.cs
- Baml2006SchemaContext.cs
- GcHandle.cs
- DescendantQuery.cs
- WS2007FederationHttpBinding.cs
- BitmapEffectInputConnector.cs
- FixedElement.cs
- DesigntimeLicenseContext.cs
- SspiSafeHandles.cs
- ScaleTransform3D.cs
- AsyncDataRequest.cs
- LoaderAllocator.cs
- FormParameter.cs
- CheckableControlBaseAdapter.cs
- AttachInfo.cs
- CqlLexerHelpers.cs
- UnsafeNativeMethods.cs
- AnnotationComponentManager.cs
- TargetConverter.cs
- CDSCollectionETWBCLProvider.cs
- InvalidFilterCriteriaException.cs
- Annotation.cs
- ChtmlTextWriter.cs
- BatchWriter.cs
- DesignerHierarchicalDataSourceView.cs
- StrongName.cs
- SRDisplayNameAttribute.cs
- HasCopySemanticsAttribute.cs
- PerformanceCounterPermission.cs
- DebugControllerThread.cs
- ObjectDataSourceMethodEventArgs.cs
- diagnosticsswitches.cs
- CloseSequence.cs
- WindowsListViewScroll.cs
- TargetConverter.cs
- TrustManager.cs
- TreeNodeCollection.cs
- WebResourceAttribute.cs
- ContextMenu.cs
- ClientSettingsProvider.cs
- StrongNameKeyPair.cs
- _NTAuthentication.cs
- WindowsStartMenu.cs
- WindowsEditBox.cs
- BlockCollection.cs
- MethodAccessException.cs
- ObjectReaderCompiler.cs
- TagMapCollection.cs
- SqlUdtInfo.cs
- RoleService.cs
- SHA512.cs
- DecoderExceptionFallback.cs
- BindingMAnagerBase.cs
- DispatcherTimer.cs
- WsdlServiceChannelBuilder.cs
- ZoneMembershipCondition.cs
- XmlUTF8TextReader.cs
- UnionCqlBlock.cs
- BitmapEffectRenderDataResource.cs
- ModelPerspective.cs
- externdll.cs
- ConnectionPoint.cs
- OdbcDataAdapter.cs
- ApplicationHost.cs
- PageBreakRecord.cs
- FieldAccessException.cs
- CompModHelpers.cs
- BoundsDrawingContextWalker.cs
- PointLight.cs
- BitmapEffectState.cs
- MetadataArtifactLoaderFile.cs
- HttpModuleActionCollection.cs
- DetailsViewDeletedEventArgs.cs
- exports.cs
- WsdlHelpGeneratorElement.cs
- SqlProvider.cs
- PropertyTabChangedEvent.cs
- x509store.cs
- RestHandlerFactory.cs
- SimpleLine.cs
- SrgsElement.cs
- ListItemConverter.cs