Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Interfaccia IBindingList

 

Data di pubblicazione: ottobre 2016

Fornisce le funzionalità necessarie per supportare scenari semplici e complessi quando si associa a un'origine dati.

Spazio dei nomi:   System.ComponentModel
Assembly:  System (in System.dll)

public interface IBindingList : IList, ICollection, IEnumerable

NomeDescrizione
System_CAPS_pubpropertyAllowEdit

Indica se è possibile aggiornare gli elementi dell'elenco.

System_CAPS_pubpropertyAllowNew

Indica se è possibile aggiungere elementi all'elenco utilizzando AddNew.

System_CAPS_pubpropertyAllowRemove

Indica se è possibile rimuovere elementi dall'elenco, utilizzare Remove o RemoveAt.

System_CAPS_pubpropertyCount

Ottiene il numero di elementi contenuti in ICollection.(Ereditato da ICollection.)

System_CAPS_pubpropertyIsFixedSize

Ottiene un valore che indica se IList ha dimensioni fisse.(Ereditato da IList.)

System_CAPS_pubpropertyIsReadOnly

Ottiene un valore che indica se IList è di sola lettura.(Ereditato da IList.)

System_CAPS_pubpropertyIsSorted

Indica se gli elementi nell'elenco sono ordinati.

System_CAPS_pubpropertyIsSynchronized

Ottiene un valore che indica se l'accesso a ICollection è sincronizzato (thread-safe).(Ereditato da ICollection.)

System_CAPS_pubpropertyItem[Int32]

Ottiene o imposta l'elemento in corrispondenza dell'indice specificato.(Ereditato da IList.)

System_CAPS_pubpropertySortDirection

Ottiene la direzione dell'ordinamento.

System_CAPS_pubpropertySortProperty

Ottiene il PropertyDescriptor che viene utilizzato per l'ordinamento.

System_CAPS_pubpropertySupportsChangeNotification

Ottiene se un ListChanged evento viene generato quando viene modificato l'elenco o un elemento nell'elenco.

System_CAPS_pubpropertySupportsSearching

Indica se l'elenco supporta la ricerca con il Find metodo.

System_CAPS_pubpropertySupportsSorting

Indica se l'elenco supporta l'ordinamento.

System_CAPS_pubpropertySyncRoot

Ottiene un oggetto che può essere usato per sincronizzare l'accesso a ICollection.(Ereditato da ICollection.)

NomeDescrizione
System_CAPS_pubmethodAdd(Object)

Aggiunge un elemento a IList.(Ereditato da IList.)

System_CAPS_pubmethodAddIndex(PropertyDescriptor)

Aggiunge il PropertyDescriptor per gli indici utilizzati per la ricerca.

System_CAPS_pubmethodAddNew()

Aggiunge un nuovo elemento all'elenco.

System_CAPS_pubmethodApplySort(PropertyDescriptor, ListSortDirection)

Ordina l'elenco in base a un PropertyDescriptor e ListSortDirection.

System_CAPS_pubmethodClear()

Rimuove tutti gli elementi da IList.(Ereditato da IList.)

System_CAPS_pubmethodContains(Object)

Stabilisce se IList contiene un valore specifico.(Ereditato da IList.)

System_CAPS_pubmethodCopyTo(Array, Int32)

Copia gli elementi di ICollection in Array a partire da un particolare indice Array.(Ereditato da ICollection.)

System_CAPS_pubmethodFind(PropertyDescriptor, Object)

Restituisce l'indice della riga che presenta il dato PropertyDescriptor.

System_CAPS_pubmethodGetEnumerator()

Restituisce un enumeratore che consente di eseguire l'iterazione di una raccolta.(Ereditato da IEnumerable.)

System_CAPS_pubmethodIndexOf(Object)

Determina l'indice di un elemento specifico in IList.(Ereditato da IList.)

System_CAPS_pubmethodInsert(Int32, Object)

Inserisce un elemento in IList in corrispondenza dell'indice specificato.(Ereditato da IList.)

System_CAPS_pubmethodRemove(Object)

Rimuove la prima occorrenza di un oggetto specifico da IList.(Ereditato da IList.)

System_CAPS_pubmethodRemoveAt(Int32)

Rimuove l'elemento IList in corrispondenza dell'indice specificato.(Ereditato da IList.)

System_CAPS_pubmethodRemoveIndex(PropertyDescriptor)

Rimuove il PropertyDescriptor dagli indici utilizzati per la ricerca.

System_CAPS_pubmethodRemoveSort()

Rimuove qualsiasi ordinamento applicato tramite ApplySort.

NomeDescrizione
System_CAPS_pubeventListChanged

Si verifica quando viene modificato l'elenco o un elemento dell'elenco.

NomeDescrizione
System_CAPS_pubmethodAsParallel()

Sottoposto a overload. Consente la parallelizzazione di una query.(Definito da ParallelEnumerable.)

System_CAPS_pubmethodAsQueryable()

Sottoposto a overload. Converte un IEnumerable a un IQueryable.(Definito da Queryable.)

System_CAPS_pubmethodCast<TResult>()

Esegue il cast di elementi di un IEnumerable nel tipo specificato.(Definito da Enumerable.)

System_CAPS_pubmethodOfType<TResult>()

Filtra gli elementi di un IEnumerable in base a un tipo specificato.(Definito da Enumerable.)

Questa interfaccia viene implementata dalla DataView classe. Implementazione di un metodo deve hanno lo stesso comportamento dell'implementazione di tale metodo nella DataView classe.

Quando si chiama il ApplySort o RemoveSort metodi, è necessario generare una ListChanged evento con il Reset enumerazione.

Quando si chiama il AddNew (metodo), è necessario generare una ListChanged evento con il ItemAdded enumerazione l'indice appropriato. La riga aggiunta è in uno stato di pressione del tasto ESC una DataGridView controllo possibile rimuovere la nuova riga. La generazione di ListChanged evento con il ItemAdded enumerazione una seconda volta su questa riga indica che l'elemento è ora una riga non è nello stato "new".

Quando si rimuove un elemento o una chiamata di CancelEdit metodo in una nuova riga (se la riga implementi IEditableObject), è necessario generare un ListChanged evento con il ItemDeleted enumerazione l'indice appropriato.

Nell'esempio seguente viene fornita una semplice implementazione del IBindingList interfaccia. La CustomerList classe archivia le informazioni utente in un elenco. Questo esempio si presuppone che sia stato usato il Customer (classe) che può essere trovati nell'esempio la IEditableObject classe.

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
Disponibile da 1.1
Torna all'inizio
Mostra: