Condividi tramite


Notifica delle modifiche nell'associazione dati dei Windows Form

Uno dei concetti più importanti di Windows Form data binding è la notifica delle modifiche. Per assicurarsi che l'origine dati e i controlli associati dispongano sempre dei dati più recenti, è necessario aggiungere una notifica di modifica per il data binding. In particolare, si vuole assicurarsi che i controlli associati vengano informati delle modifiche apportate all'origine dati e che l'origine dati riceve una notifica delle modifiche apportate alle proprietà associate di un controllo.

Esistono diversi tipi di notifica delle modifiche, a seconda del tipo di data binding:

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

  • Associazione basata su elenco, che può includere una singola proprietà di controllo associata alla proprietà di un elemento in un elenco o una proprietà di controllo associata a un elenco di oggetti.

Inoltre, se si creano Windows Form controlli che si desidera utilizzare per il data binding, è necessario applicare il modello PropertyNameChanged ai controlli, in modo che le modifiche alla proprietà associata di un controllo vengano propagate all'origine dati.

Notifica delle modifiche per l'associazione semplice

Per un'associazione semplice, gli oggetti business devono fornire una notifica di modifica quando cambia il valore di una proprietà associata. A tale scopo, è possibile esporre un evento PropertyNameChanged per ogni proprietà dell'oggetto business e associare l'oggetto business ai controlli con o il BindingSource metodo preferito in cui l'oggetto business implementa l'interfaccia INotifyPropertyChanged e genera un PropertyChanged evento quando il valore di una proprietà cambia. Per altre informazioni, vedere Procedura: Implementare l'interfaccia INotifyPropertyChanged. Quando si usano oggetti che implementano l'interfaccia INotifyPropertyChanged , non è necessario utilizzare BindingSource per associare l'oggetto a un controllo , ma è consigliabile utilizzare .BindingSource

Notifica delle modifiche per l'associazione basata su elenco

Windows Form dipende da un elenco associato per fornire la modifica della proprietà (modifiche al valore della proprietà dell'elemento di elenco) e l'elenco modificato (un elemento viene eliminato o aggiunto all'elenco) informazioni sui controlli associati. Pertanto, gli elenchi usati per il data binding devono implementare , IBindingListche fornisce entrambi i tipi di notifica delle modifiche. BindingList<T> è un'implementazione generica di IBindingList ed è progettata per l'uso con Windows Form data binding. È possibile creare un oggetto BindingList<T> contenente un tipo di oggetto business che implementa INotifyPropertyChanged e l'elenco convertirà automaticamente gli PropertyChanged eventi in ListChanged eventi. Se l'elenco associato non è un IBindingListoggetto , è necessario associare l'elenco di oggetti a Windows Form controlli utilizzando il BindingSource componente . Il BindingSource componente fornirà una conversione da proprietà a elenco simile a quella di BindingList<T>. Per altre informazioni, vedere Procedura: Generare notifiche di modifica usando bindingSource e l'interfaccia INotifyPropertyChanged.

Notifica delle modifiche per i controlli personalizzati

Infine, dal lato del controllo è necessario esporre un evento PropertyNameChanged per ogni proprietà progettata per essere associata ai dati. Le modifiche apportate alla proprietà del controllo vengono quindi propagate all'origine dati associata. Per altre informazioni, vedere Procedura: Applicare il modello PropertyNameChanged

Vedi anche