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
- TemplateBuilder.cs
- MessageHeaderDescription.cs
- DataGridViewRowsRemovedEventArgs.cs
- CompilerState.cs
- SqlVisitor.cs
- EncryptedKeyHashIdentifierClause.cs
- RelationshipFixer.cs
- ListViewTableCell.cs
- Interlocked.cs
- ColumnHeaderCollectionEditor.cs
- Win32Exception.cs
- TagNameToTypeMapper.cs
- ComboBoxDesigner.cs
- BatchStream.cs
- FormsAuthenticationModule.cs
- DataGridViewUtilities.cs
- PermissionAttributes.cs
- Screen.cs
- SerializeAbsoluteContext.cs
- columnmapkeybuilder.cs
- DelayedRegex.cs
- DictionaryTraceRecord.cs
- ParagraphResult.cs
- XmlSerializableWriter.cs
- MsmqIntegrationSecurityElement.cs
- ObjectIDGenerator.cs
- UIPropertyMetadata.cs
- BlurEffect.cs
- CTreeGenerator.cs
- NativeMethods.cs
- LinkUtilities.cs
- GZipStream.cs
- SQLMembershipProvider.cs
- RegexWorker.cs
- XMLDiffLoader.cs
- UnicastIPAddressInformationCollection.cs
- HandoffBehavior.cs
- DesignerTransaction.cs
- login.cs
- ReferenceConverter.cs
- ClrProviderManifest.cs
- ContentAlignmentEditor.cs
- XmlTextWriter.cs
- FocusWithinProperty.cs
- GraphicsPath.cs
- KeyboardInputProviderAcquireFocusEventArgs.cs
- HandlerBase.cs
- RegexMatch.cs
- ApplicationFileParser.cs
- ProviderException.cs
- PrePostDescendentsWalker.cs
- Accessible.cs
- WebPart.cs
- JsonFormatWriterGenerator.cs
- ParallelTimeline.cs
- DeobfuscatingStream.cs
- Int32KeyFrameCollection.cs
- PartitionedStream.cs
- EntitySqlException.cs
- securitymgrsite.cs
- PerspectiveCamera.cs
- Nullable.cs
- SemanticResolver.cs
- PrintDialogException.cs
- HttpHeaderCollection.cs
- InplaceBitmapMetadataWriter.cs
- SQLUtility.cs
- DrawingContext.cs
- IIS7UserPrincipal.cs
- ListBoxItemAutomationPeer.cs
- AutomationProperties.cs
- LinkButton.cs
- SymDocumentType.cs
- RequestDescription.cs
- ListItemCollection.cs
- Tracer.cs
- Pen.cs
- SqlConnectionPoolGroupProviderInfo.cs
- Point3DAnimation.cs
- CryptoConfig.cs
- SpanIndex.cs
- TextSchema.cs
- AuthenticationModuleElementCollection.cs
- TypeConverterHelper.cs
- CompareInfo.cs
- DataMemberConverter.cs
- CultureTableRecord.cs
- GenericAuthenticationEventArgs.cs
- ContextQuery.cs
- HTMLTagNameToTypeMapper.cs
- InvalidateEvent.cs
- PersonalizationAdministration.cs
- XPathAncestorIterator.cs
- OrderingQueryOperator.cs
- InheritedPropertyDescriptor.cs
- CodeStatementCollection.cs
- PrimitiveType.cs
- BatchServiceHost.cs
- SqlDataSource.cs
- ToolboxCategoryItems.cs