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
- InstanceStoreQueryResult.cs
- MembershipUser.cs
- Row.cs
- DrawingState.cs
- SettingsSection.cs
- TreeBuilderXamlTranslator.cs
- XmlDataSource.cs
- HotSpot.cs
- LoginView.cs
- ObjectDataSourceFilteringEventArgs.cs
- PropertyKey.cs
- AutomationPatternInfo.cs
- ProviderUtil.cs
- CngProperty.cs
- SchemaHelper.cs
- DataGridColumnHeader.cs
- DBAsyncResult.cs
- SelectionRangeConverter.cs
- DesignerAutoFormatStyle.cs
- BindingMAnagerBase.cs
- _HelperAsyncResults.cs
- XmlSerializerFactory.cs
- DbConnectionFactory.cs
- PresentationSource.cs
- DateTimeOffsetAdapter.cs
- StylusEditingBehavior.cs
- AutomationProperties.cs
- EntitySetBaseCollection.cs
- IPAddressCollection.cs
- NonClientArea.cs
- SecurityAttributeGenerationHelper.cs
- SQLInt16.cs
- ToolStripDropDownMenu.cs
- ArgumentNullException.cs
- BufferedWebEventProvider.cs
- PropertyGridCommands.cs
- ConsoleTraceListener.cs
- SkewTransform.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- IndexOutOfRangeException.cs
- DragEvent.cs
- ItemsPresenter.cs
- TextTreeInsertElementUndoUnit.cs
- CheckBoxField.cs
- ProjectionPlan.cs
- TextSerializer.cs
- AsymmetricSignatureFormatter.cs
- Cursor.cs
- ForeignKeyConstraint.cs
- AdPostCacheSubstitution.cs
- TypedTableBaseExtensions.cs
- ListMarkerLine.cs
- DPAPIProtectedConfigurationProvider.cs
- ColumnCollection.cs
- ObjectAssociationEndMapping.cs
- Timeline.cs
- Vector3D.cs
- ColorConvertedBitmap.cs
- ConnectionInterfaceCollection.cs
- CompositeDesignerAccessibleObject.cs
- HtmlMeta.cs
- ConnectionStringSettingsCollection.cs
- AnimatedTypeHelpers.cs
- RulePatternOps.cs
- XmlAtomicValue.cs
- Graphics.cs
- FormsAuthenticationTicket.cs
- Codec.cs
- CodeCatchClauseCollection.cs
- IriParsingElement.cs
- FormatControl.cs
- StateMachineWorkflowInstance.cs
- ArrayConverter.cs
- InkCanvasAutomationPeer.cs
- CacheHelper.cs
- DebugView.cs
- ConstNode.cs
- counter.cs
- AsynchronousChannel.cs
- Journal.cs
- SafeHandle.cs
- WindowsListViewItemCheckBox.cs
- TextTreeTextElementNode.cs
- HttpWebResponse.cs
- ListBase.cs
- ColorIndependentAnimationStorage.cs
- ConnectionPoolRegistry.cs
- XPathItem.cs
- TrackingDataItem.cs
- SQLResource.cs
- DesigntimeLicenseContext.cs
- DataMemberAttribute.cs
- VariableAction.cs
- Span.cs
- OdbcCommand.cs
- ListViewPagedDataSource.cs
- ReadOnlyMetadataCollection.cs
- SelectionEditor.cs
- UidManager.cs
- FrameSecurityDescriptor.cs