This topic has not yet been rated - Rate this topic

TemplateGroupCollection Class

Represents a collection of TemplateGroup objects within a control designer. This class cannot be inherited.

System.Object
  System.Web.UI.Design.TemplateGroupCollection

Namespace:  System.Web.UI.Design
Assembly:  System.Design (in System.Design.dll)
public sealed class TemplateGroupCollection : IList, 
	ICollection, IEnumerable

The TemplateGroupCollection type exposes the following members.

  Name Description
Public method TemplateGroupCollection Initializes a new instance of the TemplateGroupCollection class.
Top
  Name Description
Public property Count Gets the number of TemplateGroup objects in the collection.
Public property Item Gets or sets a TemplateGroup object at the specified index in the collection.
Top
  Name Description
Public method Add Adds the specified TemplateGroup object to the end of the collection.
Public method AddRange Adds the template groups in an existing TemplateGroupCollection object to the current TemplateGroupCollection object.
Public method Clear Removes all groups from the collection.
Public method Contains Determines whether the specified group is contained within the collection.
Public method CopyTo Copies the groups in the collection to a compatible one-dimensional array, starting at the specified index of the target array.
Public method Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method 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 GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Public method IndexOf Returns the index of the specified TemplateGroup object within the collection.
Public method Insert Inserts a TemplateGroup object into the collection at the specified index.
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method Remove Removes the specified TemplateGroup object from the collection.
Public method RemoveAt Removes the TemplateGroup object at the specified index within the collection.
Public method 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 Cast<TResult> Converts the elements of an IEnumerable to the specified type. (Defined by Enumerable.)
Public Extension Method OfType<TResult> Filters the elements of an IEnumerable based on a specified type. (Defined by Enumerable.)
Top
  Name Description
Explicit interface implemetation Private method ICollection.CopyTo Infrastructure. For a description of this member, see CopyTo.
Explicit interface implemetation Private property ICollection.Count Infrastructure. For a description of this member, see Count.
Explicit interface implemetation Private property ICollection.IsSynchronized Infrastructure. For a description of this member, see IsSynchronized.
Explicit interface implemetation Private property ICollection.SyncRoot Infrastructure. For a description of this member, see SyncRoot.
Explicit interface implemetation Private method IEnumerable.GetEnumerator Infrastructure. For a description of this member, see GetEnumerator.
Explicit interface implemetation Private method IList.Add Infrastructure. For a description of this member, see Add.
Explicit interface implemetation Private method IList.Clear Infrastructure. For a description of this member, see Clear.
Explicit interface implemetation Private method IList.Contains Infrastructure. For a description of this member, see Contains.
Explicit interface implemetation Private method IList.IndexOf Infrastructure. For a description of this member, see IndexOf.
Explicit interface implemetation Private method IList.Insert Infrastructure. For a description of this member, see Insert.
Explicit interface implemetation Private property IList.IsFixedSize Infrastructure. For a description of this member, see IsFixedSize.
Explicit interface implemetation Private property IList.IsReadOnly Infrastructure. For a description of this member, see IsReadOnly.
Explicit interface implemetation Private property IList.Item Infrastructure. For a description of this member, see the IList class.
Explicit interface implemetation Private method IList.Remove Infrastructure. For a description of this member, see Remove.
Explicit interface implemetation Private method IList.RemoveAt Infrastructure. For a description of this member, see RemoveAt.
Top

The ControlDesigner class, and any derived class, defines the TemplateGroups property as a TemplateGroupCollection object. The TemplateGroupCollection property is typically used only by a design host such as Visual Studio 2005.

The collection dynamically increases in size as objects are added. Indexes in this collection are zero-based. Use the Count property to determine how many groups are in the collection.

Additionally, use the TemplateGroupCollection methods and properties to provide the following functionality:

  • The Add method to add a single group to the collection.

  • The Insert method to add a group at a particular index within the collection.

  • The Remove method to remove a group.

  • The RemoveAt method to remove the group at a particular index.

  • The Contains method to determine whether a particular group is already in the collection.

  • The IndexOf method to retrieve the index of a group within the collection.

  • The Item indexer to get or set the group at a particular index, using array notation.

  • The AddRange method to add multiple groups to the collection.

    You can add multiple groups either as an array of groups or as a TemplateGroupCollection object that you retrieve through the TemplateGroups property of another control designer.

  • The Clear method to remove all groups from the collection.

The following code example demonstrates how to define a simple control designer that is derived from the ControlDesigner class. The derived control designer implements the TemplateGroups property by getting the template groups that are defined for the base class and adding a template group that is specific to the derived control designer.


using System;
using System.Web.UI;
using System.Web.UI.Design;
using System.Web.UI.WebControls;
using System.Web.UI.Design.WebControls;
using System.ComponentModel;
using System.ComponentModel.Design;

namespace Examples.AspNet
{
    // Define a simple control designer that adds a
    // template group to the template group collection.
    class DerivedControlDesigner : System.Web.UI.Design.ControlDesigner
    {
        private DerivedControl internalControl = null;

        private const String templateGroupName = "My template group";
        private const String templateDefinitionName1 = "First";
        private const String templateDefinitionName2 = "Second";
        private TemplateGroup internalGroup = null;

        // Override the read-only TemplateGroups property.
        // Get the base group collection, and add a group 
        // with two template definitions for the derived
        // control designer.
        public override TemplateGroupCollection TemplateGroups
        {
            get
            {
                // Start with the groups defined by the base designer class.
                TemplateGroupCollection groups = base.TemplateGroups;

                if (internalGroup == null) 
                {
                    // Define a new group with two template definitions.
                    internalGroup = new TemplateGroup(templateGroupName, 
                                                internalControl.ControlStyle);

                    TemplateDefinition templateDef1 = new TemplateDefinition(this, 
                        templateDefinitionName1, internalControl, 
                        templateDefinitionName1, internalControl.ControlStyle);

                    TemplateDefinition templateDef2 = new TemplateDefinition(this, 
                        templateDefinitionName2, internalControl, 
                        templateDefinitionName2, internalControl.ControlStyle);

                    internalGroup.AddTemplateDefinition(templateDef1);
                    internalGroup.AddTemplateDefinition(templateDef2);
                }


                // Add the new template group to the collection.
                groups.Add(internalGroup);

                return groups;
            }
        }

    }

    // Define a simple web control, and associate it with the designer.
    [DesignerAttribute(typeof(DerivedControlDesigner),
                       typeof(IDesigner))]
    public class DerivedControl : WebControl
    {
        // Define derived control behavior here.
    }

}


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

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