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
- AxImporter.cs
- PerformanceCountersElement.cs
- recordstatefactory.cs
- _Events.cs
- Geometry.cs
- AspNetSynchronizationContext.cs
- DataServiceHost.cs
- XamlHostingConfiguration.cs
- PathStreamGeometryContext.cs
- SoapCommonClasses.cs
- HierarchicalDataBoundControl.cs
- ObjectMemberMapping.cs
- RequestCachePolicyConverter.cs
- ImageFormat.cs
- FactoryGenerator.cs
- TextServicesHost.cs
- MenuStrip.cs
- localization.cs
- FunctionDescription.cs
- RequestTimeoutManager.cs
- Vector3DCollection.cs
- KeyedCollection.cs
- BufferBuilder.cs
- IssuanceLicense.cs
- BaseComponentEditor.cs
- ControlAdapter.cs
- CustomErrorCollection.cs
- XsdBuilder.cs
- StateWorkerRequest.cs
- MenuItem.cs
- SafeArrayRankMismatchException.cs
- SqlNotificationRequest.cs
- HttpWebRequest.cs
- PipelineModuleStepContainer.cs
- PropertyConverter.cs
- ChannelOptions.cs
- X509ChainElement.cs
- Viewport3DAutomationPeer.cs
- ToolStripDropDownMenu.cs
- TextOutput.cs
- XmlAnyElementAttributes.cs
- FixUpCollection.cs
- SByte.cs
- Drawing.cs
- SmiEventSink.cs
- EntityCommandExecutionException.cs
- EventToken.cs
- XmlEntity.cs
- DesignerSerializationOptionsAttribute.cs
- GenericIdentity.cs
- QuadraticBezierSegment.cs
- PasswordRecovery.cs
- Configuration.cs
- SqlAliaser.cs
- ServiceBusyException.cs
- CacheOutputQuery.cs
- WindowsSlider.cs
- ContentElementAutomationPeer.cs
- AssemblyBuilder.cs
- MessageBox.cs
- ClearTypeHintValidation.cs
- NamedPipeProcessProtocolHandler.cs
- ListViewHitTestInfo.cs
- InstalledFontCollection.cs
- StorageTypeMapping.cs
- ConfigurationManagerHelper.cs
- WebPartConnection.cs
- SharedDp.cs
- CompilerError.cs
- HttpBrowserCapabilitiesBase.cs
- sqlmetadatafactory.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- ReflectPropertyDescriptor.cs
- Menu.cs
- ConfigXmlText.cs
- XmlDocumentFragment.cs
- CompositeControl.cs
- SemaphoreFullException.cs
- ArrayList.cs
- ComponentEditorForm.cs
- TemplateControlParser.cs
- BlurEffect.cs
- AsyncPostBackErrorEventArgs.cs
- ClaimSet.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- FunctionQuery.cs
- PageTheme.cs
- XmlQueryType.cs
- SoapAttributes.cs
- SecurityUtils.cs
- hwndwrapper.cs
- DataGridColumn.cs
- EditorPartChrome.cs
- TabOrder.cs
- GeneralTransform3DTo2D.cs
- SortExpressionBuilder.cs
- SigningProgress.cs
- PnrpPermission.cs
- InputBinding.cs
- RulePatternOps.cs