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
- CompositeDesignerAccessibleObject.cs
- PanelStyle.cs
- WebPartDisplayModeCancelEventArgs.cs
- WebPartDescriptionCollection.cs
- _LazyAsyncResult.cs
- DataSvcMapFileSerializer.cs
- ClientSession.cs
- MessageSmuggler.cs
- ClientScriptItem.cs
- MimeTypeAttribute.cs
- StorageInfo.cs
- GroupQuery.cs
- PermissionToken.cs
- DataMisalignedException.cs
- ActiveXHelper.cs
- TdsParameterSetter.cs
- DbXmlEnabledProviderManifest.cs
- Literal.cs
- HtmlHead.cs
- SqlCommandBuilder.cs
- HtmlElement.cs
- ADMembershipUser.cs
- ZipIOCentralDirectoryBlock.cs
- EpmHelper.cs
- BindUriHelper.cs
- XmlTextReaderImpl.cs
- OptimizedTemplateContentHelper.cs
- HMACSHA384.cs
- TextBlockAutomationPeer.cs
- SpeechRecognizer.cs
- PointCollection.cs
- HtmlWindow.cs
- AsymmetricKeyExchangeDeformatter.cs
- TextRunTypographyProperties.cs
- ListenerElementsCollection.cs
- EditorReuseAttribute.cs
- SynchronizationContext.cs
- SetStoryboardSpeedRatio.cs
- RenamedEventArgs.cs
- GridViewRowEventArgs.cs
- DbBuffer.cs
- DirectoryNotFoundException.cs
- SchemaTypeEmitter.cs
- FieldToken.cs
- Zone.cs
- TextRangeAdaptor.cs
- DataServiceQueryContinuation.cs
- OleTxTransaction.cs
- XmlWrappingReader.cs
- HostedImpersonationContext.cs
- FrameworkObject.cs
- TransformPattern.cs
- ColorPalette.cs
- HandlerBase.cs
- PreparingEnlistment.cs
- ModuleConfigurationInfo.cs
- EpmTargetPathSegment.cs
- KeyConverter.cs
- TextProperties.cs
- TextAnchor.cs
- RequestCachePolicy.cs
- GridEntry.cs
- EntityDataSourceReferenceGroup.cs
- StylusOverProperty.cs
- SqlDataSourceSelectingEventArgs.cs
- Floater.cs
- PermissionAttributes.cs
- ContentValidator.cs
- ActivityExecutorDelegateInfo.cs
- ViewGenResults.cs
- OracleTransaction.cs
- UnsafeNativeMethods.cs
- GetIndexBinder.cs
- SqlDataSourceFilteringEventArgs.cs
- DataRecordInfo.cs
- JsonCollectionDataContract.cs
- EntityDataSourceColumn.cs
- HtmlHistory.cs
- DataTableNewRowEvent.cs
- FixedTextSelectionProcessor.cs
- WorkflowHostingResponseContext.cs
- FileDialogCustomPlacesCollection.cs
- UserControl.cs
- HitTestWithGeometryDrawingContextWalker.cs
- QilParameter.cs
- X509Certificate2.cs
- SystemEvents.cs
- WhiteSpaceTrimStringConverter.cs
- ObjectDataSourceMethodEditor.cs
- BidOverLoads.cs
- ArgIterator.cs
- BamlResourceDeserializer.cs
- WebPartConnectionsDisconnectVerb.cs
- Brush.cs
- RequiredFieldValidator.cs
- OdbcConnectionStringbuilder.cs
- ViewSimplifier.cs
- DockPanel.cs
- Random.cs
- RunInstallerAttribute.cs