¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo

ITypedList (Interfaz)

Actualización: noviembre 2007

Proporciona funcionalidad para descubrir el esquema de una lista enlazable, donde las propiedades disponibles para el enlace se diferencian de las propiedades públicas del objeto al que se va a enlazar.

Espacio de nombres:  System.ComponentModel
Ensamblado:  System (en System.dll)

public interface ITypedList
public interface ITypedList
public interface ITypedList

Esta interfaz se utiliza, por ejemplo, cuando se está utilizando un objeto DataView que representa una tabla customer y se desean enlazar las propiedades del objeto customer al que el objeto DataView representa y no las propiedades del propio objeto DataView.

Esta interfaz no es necesaria para la compatibilidad en tiempo de diseño de una lista enlazable.

El enlace a datos puede producirse en tiempo de ejecución o en un diseñador, si bien existen reglas para ambos casos. En tiempo de ejecución, el enlace a datos puede producirse en:

  • Array

  • Implementador de IList, siempre y cuando tenga una propiedad Item con establecimiento inflexible de tipos (es decir, Type no es Object). Para ello, convierta en privada la implementación predeterminada de Item. Si desea crear un IList que observe las reglas de una colección con establecimiento inflexible de tipos, deberá derivar de CollectionBase.

  • Implementador de ITypedList.

En un diseñador, se puede inicializar el enlace a objetos Component siguiendo las mismas reglas.

Para obtener más información sobre cómo enlazar a un origen de datos, vea la clase System.Windows.Forms.Binding.

En el ejemplo de código siguiente se muestra cómo se implementa la interfaz ITypedList. Un tipo genérico denominado SortableBindingList deriva de la clase BindingList<T> e implementa la interfaz ITypedList. Para obtener una lista de código completa, vea Cómo: Implementar la interfaz ITypedList.

using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Windows.Forms;
using System.Collections;
using System.Reflection;

namespace ITypedListCS
{
    [Serializable()]
    public class SortableBindingList<T> : BindingList<T>, ITypedList
    {
        [NonSerialized()]
        private PropertyDescriptorCollection properties;

        public SortableBindingList() : base()
        {
            // Get the 'shape' of the list. 
            // Only get the public properties marked with Browsable = true.
            PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(
                typeof(T), 
                new Attribute[] { new BrowsableAttribute(true) });

            // Sort the properties.
            properties = pdc.Sort();
        }

        #region ITypedList Implementation

        public PropertyDescriptorCollection GetItemProperties(PropertyDescriptor[] listAccessors)
        {
            PropertyDescriptorCollection pdc = null;

            if (null == listAccessors)
            {
                // Return properties in sort order.
                pdc = properties;
            }
            else
            {
                // Return child list shape.
                pdc = ListBindingHelper.GetListItemProperties(listAccessors[0].PropertyType);
            }

            return pdc;
        }

        // This method is only used in the design-time framework 
        // and by the obsolete DataGrid control.
        public string GetListName(PropertyDescriptor[] listAccessors)
        {   
            return typeof(T).Name;
        }

        #endregion
    }
}


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC, Xbox 360

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 3.5, 2.0, 1.0

XNA Framework

Compatible con: 2.0, 1.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft