1 out of 1 rated this helpful - Rate this topic

PropertyDescriptorCollection Class

Represents a collection of PropertyDescriptor objects.

System.Object
  System.ComponentModel.PropertyDescriptorCollection

Namespace:  System.ComponentModel
Assembly:  System (in System.dll)
[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true)]
public class PropertyDescriptorCollection : IList, 
	IDictionary, ICollection, IEnumerable

The PropertyDescriptorCollection type exposes the following members.

  Name Description
Public method Supported by the XNA Framework PropertyDescriptorCollection(PropertyDescriptor[]) Initializes a new instance of the PropertyDescriptorCollection class.
Public method PropertyDescriptorCollection(PropertyDescriptor[], Boolean) Initializes a new instance of the PropertyDescriptorCollection class, which is optionally read-only.
Top
  Name Description
Public property Supported by the XNA Framework Count Gets the number of property descriptors in the collection.
Public property Supported by the XNA Framework Item[Int32] Gets or sets the PropertyDescriptor at the specified index number.
Public property Supported by the XNA Framework Item[String] Gets or sets the PropertyDescriptor with the specified name.
Top
  Name Description
Public method Supported by the XNA Framework Add Adds the specified PropertyDescriptor to the collection.
Public method Supported by the XNA Framework Clear Removes all PropertyDescriptor objects from the collection.
Public method Supported by the XNA Framework Contains Returns whether the collection contains the given PropertyDescriptor.
Public method Supported by the XNA Framework CopyTo Copies the entire collection to an array, starting at the specified index number.
Public method Supported by the XNA Framework Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Supported by the XNA Framework Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method Supported by the XNA Framework Find Returns the PropertyDescriptor with the specified name, using a Boolean to indicate whether to ignore case.
Public method Supported by the XNA Framework GetEnumerator Returns an enumerator for this class.
Public method Supported by the XNA Framework GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method Supported by the XNA Framework GetType Gets the Type of the current instance. (Inherited from Object.)
Public method Supported by the XNA Framework IndexOf Returns the index of the given PropertyDescriptor.
Public method Supported by the XNA Framework Insert Adds the PropertyDescriptor to the collection at the specified index number.
Protected method InternalSort(IComparer) Sorts the members of this collection, using the specified IComparer.
Protected method InternalSort(String[]) Sorts the members of this collection. The specified order is applied first, followed by the default sort for this collection, which is usually alphabetical.
Protected method Supported by the XNA Framework MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method Supported by the XNA Framework Remove Removes the specified PropertyDescriptor from the collection.
Public method Supported by the XNA Framework RemoveAt Removes the PropertyDescriptor at the specified index from the collection.
Public method Sort() Sorts the members of this collection, using the default sort for this collection, which is usually alphabetical.
Public method Sort(IComparer) Sorts the members of this collection, using the specified IComparer.
Public method Sort(String[]) Sorts the members of this collection. The specified order is applied first, followed by the default sort for this collection, which is usually alphabetical.
Public method Sort(String[], IComparer) Sorts the members of this collection. The specified order is applied first, followed by the sort using the specified IComparer.
Public method Supported by the XNA Framework ToString Returns a string that represents the current object. (Inherited from Object.)
Top
  Name Description
Public Extension Method AsParallel Enables parallelization of a query. (Defined by ParallelEnumerable.)
Public Extension Method AsQueryable Converts an IEnumerable to an IQueryable. (Defined by Queryable.)
Public Extension Method Supported by the XNA Framework Cast<TResult> Converts the elements of an IEnumerable to the specified type. (Defined by Enumerable.)
Public Extension Method Supported by the XNA Framework OfType<TResult> Filters the elements of an IEnumerable based on a specified type. (Defined by Enumerable.)
Top
  Name Description
Public field Static member Supported by the XNA Framework Empty Specifies an empty collection that you can use instead of creating a new one with no items. This static field is read-only.
Top
  Name Description
Explicit interface implemetation Private property Supported by the XNA Framework ICollection.Count Gets the number of elements contained in the collection.
Explicit interface implemetation Private property Supported by the XNA Framework ICollection.IsSynchronized Gets a value indicating whether access to the collection is synchronized (thread safe).
Explicit interface implemetation Private property Supported by the XNA Framework ICollection.SyncRoot Gets an object that can be used to synchronize access to the collection.
Explicit interface implemetation Private method Supported by the XNA Framework IDictionary.Add Adds an element with the provided key and value to the IDictionary.
Explicit interface implemetation Private method Supported by the XNA Framework IDictionary.Clear Removes all elements from the IDictionary.
Explicit interface implemetation Private method Supported by the XNA Framework IDictionary.Contains Determines whether the IDictionary contains an element with the specified key.
Explicit interface implemetation Private method Supported by the XNA Framework IDictionary.GetEnumerator Returns an enumerator for this class.
Explicit interface implemetation Private property Supported by the XNA Framework IDictionary.IsFixedSize Gets a value indicating whether the IDictionary has a fixed size.
Explicit interface implemetation Private property Supported by the XNA Framework IDictionary.IsReadOnly Gets a value indicating whether the IDictionary is read-only.
Explicit interface implemetation Private property Supported by the XNA Framework IDictionary.Item Gets or sets the element with the specified key.
Explicit interface implemetation Private property Supported by the XNA Framework IDictionary.Keys Gets an ICollection containing the keys of the IDictionary.
Explicit interface implemetation Private method Supported by the XNA Framework IDictionary.Remove Removes the element with the specified key from the IDictionary.
Explicit interface implemetation Private property Supported by the XNA Framework IDictionary.Values Gets an ICollection containing the values in the IDictionary.
Explicit interface implemetation Private method Supported by the XNA Framework IEnumerable.GetEnumerator Returns an IEnumerator for the IDictionary.
Explicit interface implemetation Private method Supported by the XNA Framework IList.Add Adds an item to the IList.
Explicit interface implemetation Private method Supported by the XNA Framework IList.Clear Removes all items from the collection.
Explicit interface implemetation Private method Supported by the XNA Framework IList.Contains Determines whether the collection contains a specific value.
Explicit interface implemetation Private method Supported by the XNA Framework IList.IndexOf Determines the index of a specified item in the collection.
Explicit interface implemetation Private method Supported by the XNA Framework IList.Insert Inserts an item into the collection at a specified index.
Explicit interface implemetation Private property Supported by the XNA Framework IList.IsFixedSize Gets a value indicating whether the collection has a fixed size.
Explicit interface implemetation Private property Supported by the XNA Framework IList.IsReadOnly Gets a value indicating whether the collection is read-only.
Explicit interface implemetation Private property Supported by the XNA Framework IList.Item Gets or sets an item from the collection at a specified index.
Explicit interface implemetation Private method Supported by the XNA Framework IList.Remove Removes the first occurrence of a specified value from the collection.
Explicit interface implemetation Private method Supported by the XNA Framework IList.RemoveAt Removes the item at the specified index.
Top

PropertyDescriptorCollection is read-only; it does not implement methods that add or remove properties. You must inherit from this class to implement these methods.

Using the properties available in the PropertyDescriptorCollection class, you can query the collection about its contents. Use the Count property to determine the number of elements in the collection. Use the Item property to get a specific property by index number or by name.

In addition to properties, you can use the Find method to get a description of the property with the specified name from the collection.

Note Note

The HostProtectionAttribute attribute applied to this type or member has the following Resources property value: Synchronization. The HostProtectionAttribute does not affect desktop applications (which are typically started by double-clicking an icon, typing a command, or entering a URL in a browser). For more information, see the HostProtectionAttribute class or SQL Server Programming and Host Protection Attributes.

The following code example creates a new PropertyDescriptorCollection using the properties on button1. It requires that button1 has been instantiated on a form.


PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(button1);


The next example prints all the properties on a button in a text box. It requires that button1 and textBox1 have been instantiated on a form.


private void MyPropertyCollection() {
    // Creates a new collection and assign it the properties for button1.
    PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(button1);

    // Displays each property in the collection in a text box.
    foreach (PropertyDescriptor myProperty in properties)
       textBox1.Text += myProperty.Name + '\n';
 }


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Fill class from data reader
 [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlRootAttribute("test")]
    public class test
    {
       
public void Fill(System.Data.SqlClient.SqlDataReader dr)
        {
            System.ComponentModel.PropertyDescriptorCollection props = System.ComponentModel.TypeDescriptor.GetProperties(this);
            for (int i = 0; (i < props.Count); i = (i + 1))
            {
                System.ComponentModel.PropertyDescriptor prop = props[i];
                if ((prop.IsReadOnly != true))
                {
                    try
                    {
                        if ((dr[prop.Name].Equals(System.DBNull.Value) != true))
                        {
                            if ((prop.PropertyType.Equals(dr[prop.Name].GetType()) != true))
                            {
                                prop.SetValue(this, prop.Converter.ConvertFrom(dr[prop.Name]));
                            }
                            else
                            {
                                prop.SetValue(this, dr[prop.Name]);
                            }
                        }
                    }
                    catch (System.Exception)
                    {
                    }
                }
            }
        }
}