TemplateGroupCollection Classe

Definição

Representa uma coleção de TemplateGroup objetos dentro de um designer de controlo. Esta classe não pode ser herdada.

public ref class TemplateGroupCollection sealed : System::Collections::IList
public sealed class TemplateGroupCollection : System.Collections.IList
type TemplateGroupCollection = class
    interface IList
    interface ICollection
    interface IEnumerable
Public NotInheritable Class TemplateGroupCollection
Implements IList
Herança
TemplateGroupCollection
Implementações

Exemplos

O exemplo de código seguinte demonstra como definir um designer de controlo simples derivado da ControlDesigner classe. O designer de controlos derivados implementa a TemplateGroups propriedade obtendo os grupos de templates definidos para a classe base e adicionando um grupo de templates específico para o designer de controlo derivado.

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.
    }
}
Imports System.Web.UI
Imports System.Web.UI.Design
Imports System.Web.UI.WebControls
Imports System.Web.UI.Design.WebControls
Imports System.ComponentModel
Imports System.ComponentModel.Design

Namespace Examples.AspNet

    ' Define a simple control designer that adds a
    ' template group to the template group collection.
    Class DerivedControlDesigner
        Inherits System.Web.UI.Design.ControlDesigner

        Private Dim internalControl As DerivedControl = Nothing
    
        Private Const templateGroupName As String = "My template group"
        Private Const templateDefinitionName1 As String = "First"
        Private Const templateDefinitionName2 As String = "Second"
        Private Dim internalGroup As TemplateGroup = Nothing

        ' 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 Overrides ReadOnly Property TemplateGroups As TemplateGroupCollection
            Get

                ' Start with the groups defined by the base designer class.
                Dim groups As TemplateGroupCollection  = MyBase.TemplateGroups

                If internalGroup Is Nothing

                    ' Define a new group with two template definitions.
                    internalGroup = New TemplateGroup(templateGroupName, _
                                                internalControl.ControlStyle)

                    Dim templateDef1 As TemplateDefinition = new TemplateDefinition(Me, _
                        templateDefinitionName1, internalControl, _
                        templateDefinitionName1, internalControl.ControlStyle)

                    Dim templateDef2 As TemplateDefinition = new TemplateDefinition(Me, _
                        templateDefinitionName2, internalControl, _
                        templateDefinitionName2, internalControl.ControlStyle)

                    internalGroup.AddTemplateDefinition(templateDef1)
                    internalGroup.AddTemplateDefinition(templateDef2)

                End If

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

                return groups
            End Get
        End Property

    End Class

    ' Simple Web control, derived from the Web control class.
    <DesignerAttribute(GetType(DerivedControlDesigner), GetType(IDesigner))> _
    Public Class DerivedControl
        Inherits WebControl
        
        ' Define derived control behavior here.
    End Class

End Namespace

Observações

A ControlDesigner classe, e qualquer classe derivada, define a TemplateGroups propriedade como um TemplateGroupCollection objeto. A propriedade TemplateGroupCollection é normalmente usada apenas por um host de design, como Visual Studio 2005.

A coleção aumenta dinamicamente de tamanho à medida que os objetos são adicionados. Os índices nesta coleção são baseados em zero. Use a Count propriedade para determinar quantos grupos há na coleção.

Adicionalmente, utilize os TemplateGroupCollection métodos e propriedades para fornecer a seguinte funcionalidade:

  • O Add método para adicionar um único grupo à coleção.

  • O Insert método para adicionar um grupo num índice específico dentro da coleção.

  • O Remove método para remover um grupo.

  • O RemoveAt método para remover o grupo num índice particular.

  • O Contains método para determinar se um determinado grupo já está na coleção.

  • O IndexOf método para recuperar o índice de um grupo dentro da coleção.

  • O Item[] indexador para obter ou definir o grupo num índice específico, usando notação de array.

  • O AddRange método para adicionar múltiplos grupos à coleção.

    Pode adicionar múltiplos grupos, seja como um array de grupos ou como um TemplateGroupCollection objeto que recupera através da TemplateGroups propriedade de outro designer de controlos.

  • O Clear método para remover todos os grupos da coleção.

Construtores

Name Description
TemplateGroupCollection()

Inicializa uma nova instância da TemplateGroupCollection classe.

Propriedades

Name Description
Count

Obtém o número de TemplateGroup objetos na coleção.

Item[Int32]

Obtém ou define um TemplateGroup objeto no índice especificado na coleção.

Métodos

Name Description
Add(TemplateGroup)

Adiciona o objeto especificado TemplateGroup ao final da coleção.

AddRange(TemplateGroupCollection)

Adiciona os grupos de templates num objeto existente TemplateGroupCollection ao objeto atual TemplateGroupCollection .

Clear()

Remove todos os grupos da coleção.

Contains(TemplateGroup)

Determina se o grupo especificado está contido na coleção.

CopyTo(TemplateGroup[], Int32)

Copia os grupos da coleção para um array unidimensional compatível, começando no índice especificado do array-alvo.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IndexOf(TemplateGroup)

Devolve o índice do objeto especificado TemplateGroup dentro da coleção.

Insert(Int32, TemplateGroup)

Insere um TemplateGroup objeto na coleção no índice especificado.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Remove(TemplateGroup)

Remove o objeto especificado TemplateGroup da coleção.

RemoveAt(Int32)

Remove o TemplateGroup objeto no índice especificado dentro da coleção.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Name Description
ICollection.CopyTo(Array, Int32)

Para uma descrição deste elemento, veja CopyTo(Array, Int32).

ICollection.Count

Para uma descrição deste elemento, veja Count.

ICollection.IsSynchronized

Para uma descrição deste elemento, veja IsSynchronized.

ICollection.SyncRoot

Para uma descrição deste elemento, veja SyncRoot.

IEnumerable.GetEnumerator()

Para uma descrição deste elemento, veja GetEnumerator().

IList.Add(Object)

Para uma descrição deste elemento, veja Add(Object).

IList.Clear()

Para uma descrição deste elemento, veja Clear().

IList.Contains(Object)

Para uma descrição deste elemento, veja Contains(Object).

IList.IndexOf(Object)

Para uma descrição deste elemento, veja IndexOf(Object).

IList.Insert(Int32, Object)

Para uma descrição deste elemento, veja Insert(Int32, Object).

IList.IsFixedSize

Para uma descrição deste elemento, veja IsFixedSize.

IList.IsReadOnly

Para uma descrição deste elemento, veja IsReadOnly.

IList.Item[Int32]

Para uma descrição deste membro, veja a IList classe.

IList.Remove(Object)

Para uma descrição deste elemento, veja Remove(Object).

IList.RemoveAt(Int32)

Para uma descrição deste elemento, veja RemoveAt(Int32).

Métodos da Extensão

Name Description
AsParallel(IEnumerable)

Permite a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable para um IQueryable.

Cast<TResult>(IEnumerable)

Conjura os elementos de an IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base num tipo especificado.

Aplica-se a

Ver também