AttachedPropertyDescriptor.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / Model / AttachedPropertyDescriptor.cs / 1305376 / AttachedPropertyDescriptor.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.ComponentModel;
    using System.Activities.Presentation.Model;

    class AttachedPropertyDescriptor : PropertyDescriptor 
    {
        AttachedProperty AttachedProperty; 
        ModelItem owner; 

        public AttachedPropertyDescriptor(AttachedProperty AttachedProperty, ModelItem owner) 
            : base(AttachedProperty.Name, null)
        {
            this.AttachedProperty = AttachedProperty;
            this.owner = owner; 
        }
 
        public override AttributeCollection Attributes 
        {
            get 
            {
                List attributeList = new List();
                foreach (Attribute attr in TypeDescriptor.GetAttributes(this.PropertyType))
                { 
                    attributeList.Add(attr);
                } 
                BrowsableAttribute browsableAttribute = new BrowsableAttribute(this.IsBrowsable); 
                attributeList.Add(browsableAttribute);
                return new AttributeCollection(attributeList.ToArray()); 
            }
        }

        public override Type ComponentType 
        {
            get { return this.owner.ItemType; } 
        } 

        public override bool IsReadOnly 
        {
            get
            {
                return this.AttachedProperty.IsReadOnly; 
            }
        } 
 
        public override Type PropertyType
        { 
            get
            {
                return this.AttachedProperty.Type;
            } 
        }
 
        public override bool IsBrowsable 
        {
            get 
            {
                return this.AttachedProperty.IsBrowsable;
            }
        } 
        public override bool CanResetValue(object component)
        { 
            return false; 
        }
 
        public override object GetValue(object component)
        {

            return this.AttachedProperty.GetValue(owner); 
        }
 
        public override void ResetValue(object component) 
        {
            this.AttachedProperty.ResetValue(owner); 
        }

        public override void SetValue(object component, object value)
        { 
            this.AttachedProperty.SetValue(owner, value);
        } 
 
        public override bool ShouldSerializeValue(object component)
        { 
            return false;
        }
    }
 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK