IBindingList Interfaz
TOC
Collapse the table of content
Expand the table of content
Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

IBindingList (Interfaz)

 

Proporciona las características necesarias para admitir escenarios complejos como simples cuando se enlaza a un origen de datos.

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

public interface IBindingList : IList, ICollection, IEnumerable

NombreDescripción
System_CAPS_pubpropertyAllowEdit

Obtiene si se pueden actualizar los elementos de la lista.

System_CAPS_pubpropertyAllowNew

Obtiene si se pueden agregar elementos a la lista mediante AddNew.

System_CAPS_pubpropertyAllowRemove

Obtiene si se pueden quitar elementos de la lista mediante Remove o RemoveAt.

System_CAPS_pubpropertyCount

Obtiene el número de elementos incluidos en ICollection.(Heredado de ICollection.)

System_CAPS_pubpropertyIsFixedSize

Obtiene un valor que indica si la interfaz IList tiene un tamaño fijo.(Heredado de IList.)

System_CAPS_pubpropertyIsReadOnly

Obtiene un valor que indica si IList es de solo lectura.(Heredado de IList.)

System_CAPS_pubpropertyIsSorted

Obtiene si se ordenan los elementos de la lista.

System_CAPS_pubpropertyIsSynchronized

Obtiene un valor que indica si el acceso a la interfaz ICollection está sincronizado (es seguro para subprocesos).(Heredado de ICollection.)

System_CAPS_pubpropertyItem[Int32]

Obtiene o establece el elemento en el índice especificado.(Heredado de IList.)

System_CAPS_pubpropertySortDirection

Obtiene la dirección de la ordenación.

System_CAPS_pubpropertySortProperty

Obtiene el PropertyDescriptor que se utiliza para ordenar.

System_CAPS_pubpropertySupportsChangeNotification

Obtiene si un ListChanged evento se produce cuando cambia la lista o un elemento en la lista.

System_CAPS_pubpropertySupportsSearching

Obtiene si la lista admite búsquedas mediante el Find método.

System_CAPS_pubpropertySupportsSorting

Obtiene si la lista admite la ordenación.

System_CAPS_pubpropertySyncRoot

Obtiene un objeto que se puede usar para sincronizar el acceso a ICollection.(Heredado de ICollection.)

NombreDescripción
System_CAPS_pubmethodAdd(Object)

Agrega un elemento a IList.(Heredado de IList.)

System_CAPS_pubmethodAddIndex(PropertyDescriptor)

Agrega el PropertyDescriptor a los índices utilizados para las búsquedas.

System_CAPS_pubmethodAddNew()

Agrega un nuevo elemento a la lista.

System_CAPS_pubmethodApplySort(PropertyDescriptor, ListSortDirection)

Ordena la lista basándose en un PropertyDescriptor y un ListSortDirection.

System_CAPS_pubmethodClear()

Quita todos los elementos de IList.(Heredado de IList.)

System_CAPS_pubmethodContains(Object)

Determina si IList contiene un valor específico.(Heredado de IList.)

System_CAPS_pubmethodCopyTo(Array, Int32)

Copia los elementos de ICollection en Array, empezando por un índice determinado de Array.(Heredado de ICollection.)

System_CAPS_pubmethodFind(PropertyDescriptor, Object)

Devuelve el índice de la fila que tiene el determinado PropertyDescriptor.

System_CAPS_pubmethodGetEnumerator()

Devuelve un enumerador que recorre en iteración una colección.(Heredado de IEnumerable.)

System_CAPS_pubmethodIndexOf(Object)

Determina el índice de un elemento específico de IList.(Heredado de IList.)

System_CAPS_pubmethodInsert(Int32, Object)

Inserta un elemento en la interfaz IList, en el índice especificado.(Heredado de IList.)

System_CAPS_pubmethodRemove(Object)

Quita la primera aparición de un objeto específico de la interfaz IList.(Heredado de IList.)

System_CAPS_pubmethodRemoveAt(Int32)

Quita el elemento de la interfaz IList que se encuentra en el índice especificado.(Heredado de IList.)

System_CAPS_pubmethodRemoveIndex(PropertyDescriptor)

Quita el PropertyDescriptor de los índices utilizados para las búsquedas.

System_CAPS_pubmethodRemoveSort()

Quita cualquier ordenación aplicada mediante ApplySort.

NombreDescripción
System_CAPS_pubeventListChanged

Se produce cuando cambia la lista o un elemento de la lista.

NombreDescripción
System_CAPS_pubmethodAsParallel()

Sobrecargado. Habilita la paralelización de una consulta.(Defined by ParallelEnumerable.)

System_CAPS_pubmethodAsQueryable()

Sobrecargado. Convierte un IEnumerable para un IQueryable.(Defined by Queryable.)

System_CAPS_pubmethodCast<TResult>()

Convierte los elementos de un IEnumerable al tipo especificado.(Defined by Enumerable.)

System_CAPS_pubmethodOfType<TResult>()

Filtra los elementos de un IEnumerable basado en un tipo especificado.(Defined by Enumerable.)

Esta interfaz se implementa mediante la DataView clase. Implementación de un método debe presentar el mismo comportamiento que la implementación de ese método en la DataView clase.

Cuando se llama a la ApplySort o RemoveSort métodos, debe generar un ListChanged evento con el Reset (enumeración).

Cuando se llama a la AddNew método, debe generar un ListChanged evento con el ItemAdded enumeración incluya el índice adecuado. La fila agregada se encuentra en un estado donde presionando ESC en un DataGridView control puede quitar la nueva fila. Cuando se genera el ListChanged evento con el ItemAdded enumeración una segunda vez en esta fila indica que el elemento es ahora una fila no está en el estado "nuevo".

Al quitar un elemento o una llamada el CancelEdit método en una nueva fila (si es que implementa de fila IEditableObject), debería generar un ListChanged evento con el ItemDeleted enumeración incluya el índice adecuado.

En el ejemplo siguiente se proporciona una implementación simple de la IBindingList interfaz. La CustomerList clase almacena información de clientes en una lista. En este ejemplo se supone que ha usado la Customer clase que se puede encontrar en el ejemplo de la IEditableObject clase.

public class CustomersList :  CollectionBase, IBindingList
{

	private ListChangedEventArgs resetEvent = new ListChangedEventArgs(ListChangedType.Reset, -1);
	private ListChangedEventHandler onListChanged;

	public void LoadCustomers() 
	{
		IList l = (IList)this;
		l.Add(ReadCustomer1());
		l.Add(ReadCustomer2());
		OnListChanged(resetEvent);
	}

	public Customer this[int index] 
	{
		get 
		{
			return (Customer)(List[index]);
		}
		set 
		{
			List[index] = value;
		}
	}

	public int Add (Customer value) 
	{
		return List.Add(value);
	}

	public Customer AddNew() 
	{
		return (Customer)((IBindingList)this).AddNew();
	}

	public void Remove (Customer value) 
	{
		List.Remove(value);
	}


	protected virtual void OnListChanged(ListChangedEventArgs ev) 
	{
		if (onListChanged != null) 
		{
			onListChanged(this, ev);
		}
	}


	protected override void OnClear() 
	{
		foreach (Customer c in List) 
		{
			c.Parent = null;
		}
	}

	protected override void OnClearComplete() 
	{
		OnListChanged(resetEvent);
	}

	protected override void OnInsertComplete(int index, object value) 
	{
		Customer c = (Customer)value;
		c.Parent = this;
		OnListChanged(new ListChangedEventArgs(ListChangedType.ItemAdded, index));
	}

	protected override void OnRemoveComplete(int index, object value) 
	{
		Customer c = (Customer)value;
		c.Parent = this;
		OnListChanged(new ListChangedEventArgs(ListChangedType.ItemDeleted, index));
	}

	protected override void OnSetComplete(int index, object oldValue, object newValue) 
	{
		if (oldValue != newValue) 
		{

			Customer oldcust = (Customer)oldValue;
			Customer newcust = (Customer)newValue;

			oldcust.Parent = null;
			newcust.Parent = this;


			OnListChanged(new ListChangedEventArgs(ListChangedType.ItemAdded, index));
		}
	}

	// Called by Customer when it changes.
	internal void CustomerChanged(Customer cust) 
	{

		int index = List.IndexOf(cust);

		OnListChanged(new ListChangedEventArgs(ListChangedType.ItemChanged, index));
	}


	// Implements IBindingList.
	bool IBindingList.AllowEdit 
	{ 
		get { return true ; }
	}

	bool IBindingList.AllowNew 
	{ 
		get { return true ; }
	}

	bool IBindingList.AllowRemove 
	{ 
		get { return true ; }
	}

	bool IBindingList.SupportsChangeNotification 
	{ 
		get { return true ; }
	}

	bool IBindingList.SupportsSearching 
	{ 
		get { return false ; }
	}

	bool IBindingList.SupportsSorting 
	{ 
		get { return false ; }
	}


	// Events.
	public event ListChangedEventHandler ListChanged 
	{
		add 
		{
			onListChanged += value;
		}
		remove 
		{
			onListChanged -= value;
		}
	}

	// Methods.
	object IBindingList.AddNew() 
	{
		Customer c = new Customer(this.Count.ToString());
		List.Add(c);
		return c;
	}


	// Unsupported properties.
	bool IBindingList.IsSorted 
	{ 
		get { throw new NotSupportedException(); }
	}

	ListSortDirection IBindingList.SortDirection 
	{ 
		get { throw new NotSupportedException(); }
	}


	PropertyDescriptor IBindingList.SortProperty 
	{ 
		get { throw new NotSupportedException(); }
	}


	// Unsupported Methods.
	void IBindingList.AddIndex(PropertyDescriptor property) 
	{
		throw new NotSupportedException(); 
	}

	void IBindingList.ApplySort(PropertyDescriptor property, ListSortDirection direction) 
	{
		throw new NotSupportedException(); 
	}

	int IBindingList.Find(PropertyDescriptor property, object key) 
	{
		throw new NotSupportedException(); 
	}

	void IBindingList.RemoveIndex(PropertyDescriptor property) 
	{
		throw new NotSupportedException(); 
	}

	void IBindingList.RemoveSort() 
	{
		throw new NotSupportedException(); 
	}

	// Worker functions to populate the list with data.
	private static Customer ReadCustomer1() 
	{
		Customer cust = new Customer("536-45-1245");
		cust.FirstName = "Jo";
		cust.LastName = "Brown";
		return cust;
	}

	private static Customer ReadCustomer2() 
	{
		Customer cust = new Customer("246-12-5645");
		cust.FirstName = "Robert";
		cust.LastName = "Brown";
		return cust;
	}
}

.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar:
© 2016 Microsoft