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
- Style.cs
- VisualBasicExpressionConverter.cs
- SignedXml.cs
- AsyncPostBackTrigger.cs
- ApplicationServicesHostFactory.cs
- ObjectTypeMapping.cs
- NameValueSectionHandler.cs
- IsolatedStorageException.cs
- ExtensionSurface.cs
- RsaKeyIdentifierClause.cs
- IncrementalCompileAnalyzer.cs
- RemoveStoryboard.cs
- TimeSpanStorage.cs
- PrincipalPermission.cs
- FontDriver.cs
- ThrowHelper.cs
- AppDomainFactory.cs
- AuthenticationModulesSection.cs
- DataGridColumnCollection.cs
- KeyValuePair.cs
- FactoryGenerator.cs
- PresentationTraceSources.cs
- BindToObject.cs
- ClipboardProcessor.cs
- RectIndependentAnimationStorage.cs
- AlphaSortedEnumConverter.cs
- SystemDiagnosticsSection.cs
- RegexRunnerFactory.cs
- DataGridBoolColumn.cs
- NullableIntMinMaxAggregationOperator.cs
- ClientConvert.cs
- CompositeKey.cs
- ForceCopyBuildProvider.cs
- MobileCapabilities.cs
- OleDbReferenceCollection.cs
- odbcmetadatafactory.cs
- ComponentEditorForm.cs
- SoapElementAttribute.cs
- EdmPropertyAttribute.cs
- TransactionContextValidator.cs
- PersonalizationProvider.cs
- TreeNodeEventArgs.cs
- DependencyPropertyValueSerializer.cs
- Operand.cs
- DictionaryBase.cs
- FormsAuthenticationUser.cs
- controlskin.cs
- HttpProtocolImporter.cs
- AnonymousIdentificationSection.cs
- AdPostCacheSubstitution.cs
- Rfc2898DeriveBytes.cs
- LineMetrics.cs
- ProxyAttribute.cs
- SynchronizationContext.cs
- GridViewRowCollection.cs
- ContentElementAutomationPeer.cs
- XmlLanguage.cs
- ConsoleKeyInfo.cs
- Line.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- WmlLabelAdapter.cs
- SortDescription.cs
- ZeroOpNode.cs
- UInt16Storage.cs
- EventBuilder.cs
- XmlNamespaceMapping.cs
- NetCodeGroup.cs
- InternalDispatchObject.cs
- DatatypeImplementation.cs
- EnvironmentPermission.cs
- QuarticEase.cs
- ToggleButton.cs
- TemplatedAdorner.cs
- ManagedWndProcTracker.cs
- Schedule.cs
- MulticastOption.cs
- RotateTransform3D.cs
- GetPageNumberCompletedEventArgs.cs
- ReachDocumentReferenceSerializerAsync.cs
- XPathExpr.cs
- AssemblyBuilderData.cs
- Animatable.cs
- Column.cs
- COM2ExtendedUITypeEditor.cs
- DateTime.cs
- TextBoxLine.cs
- BaseAsyncResult.cs
- HandleCollector.cs
- PartialCachingAttribute.cs
- NumericUpDown.cs
- IDictionary.cs
- ActivityScheduledQuery.cs
- ContentType.cs
- ProcessHostFactoryHelper.cs
- EncoderReplacementFallback.cs
- RelationshipEnd.cs
- HistoryEventArgs.cs
- BookmarkManager.cs
- BamlBinaryReader.cs
- FragmentNavigationEventArgs.cs