Notifica delle modifiche nell'associazione dati dei Windows Form

Aggiornamento: novembre 2007

Uno dei concetti più importanti dell'associazione dati dei Windows Form è quello di notifica delle modifiche. Per assicurarsi che l'origine dati e i controlli associati dispongano sempre dei dati più recenti, è necessario aggiungere una notifica delle modifiche per l'associazione dati. Nella fattispecie, è opportuno accertarsi che i controlli associati ricevano notifica delle modifiche apportate alla relativa origine dati e che l'origine dati riceva notifica delle modifiche apportate alle proprietà associate di un controllo.

Esistono diversi tipi di notifica delle modifiche, a seconda del tipo di associazione dati:

  • Associazione semplice, in cui la proprietà di un singolo controllo viene associata a una singola istanza di un oggetto.

  • Associazione basata su elenchi, che può includere la proprietà di un singolo controllo associata alla proprietà di un elemento di un elenco o la proprietà di un controllo associata a un elenco di oggetti.

Inoltre, se si creano controlli Windows Forms da utilizzare per l'associazione dati, sarà necessario applicare il modello NomeProprietàChanged ai controlli, in modo che le modifiche apportate alla proprietà associata di un controllo siano propagate all'origine dati.

Notifica delle modifiche per l'associazione semplice

Per l'associazione semplice, è necessario che gli oggetti business forniscano la notifica delle modifiche quando viene modificato il valore di una proprietà associata. È possibile effettuare questa operazione esponendo un evento NomeProprietàChanged per ciascuna proprietà dell'oggetto business e associando tale oggetto ai controlli con la classe BindingSource o il metodo desiderato in cui l'oggetto business implementa l'interfaccia INotifyPropertyChanged e genera un evento PropertyChanged quando viene modificato il valore di una proprietà. Per ulteriori informazioni, vedere Procedura: implementare l'interfaccia INotifyPropertyChanged. Quando si utilizzano oggetti che implementano l'interfaccia INotifyPropertyChanged, l'utilizzo della classe BindingSource per associare l'oggetto a un controllo non è necessario, ma è consigliato.

Notifica delle modifiche per l'associazione basata su elenchi

Nei Windows Form la notifica ai controlli associati delle informazioni sulle modifiche delle proprietà (viene modificato il valore di una proprietà di un elemento dell'elenco) e le modifiche dell'elenco (viene eliminato o aggiunto un elemento all'elenco) dipende da un elenco associato. Pertanto gli elenchi utilizzati per l'associazione dati devono implementare l'interfaccia IBindingList, che fornisce entrambi i tipi di notifica delle modifiche. BindingList<T> è un'implementazione generica dell'interfaccia IBindingList ed è progettata per l'utilizzo con l'associazione dati dei Windows Form. È possibile creare una classe BindingList<T> contenente un tipo di oggetto business che implementa INotifyPropertyChanged e l'elenco convertirà automaticamente gli eventi PropertyChanged in eventi ListChanged. Se l'elenco associato non è un'interfaccia IBindingList, sarà necessario associare l'elenco di oggetti ai controlli Windows Form utilizzando il componente BindingSource. Il componente BindingSource consentirà una conversione da proprietà a elenco simile a quella di BindingList<T>. Per ulteriori informazioni, vedere Procedura: generare notifiche di modifica utilizzando un BindingSource e l'interfaccia INotifyPropertyChanged.

Notifica delle modifiche per i controlli personalizzati

Infine, dal lato dei controlli, sarà necessario esporre un evento NomeProprietàChanged per ciascuna proprietà progettata per l'associazione ai dati. Le modifiche apportate alla proprietà dei controlli verranno quindi propagate all'origine dati associata. Per ulteriori informazioni, vedere Procedura: applicare il modello PropertyNameChanged

Vedere anche

Concetti

Origini dati supportate da Windows Form

Associazione dati e Windows Form

Riferimenti

BindingSource

INotifyPropertyChanged

BindingList<T>

Altre risorse

Associazione ai dati di Windows Form