Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jedną z najważniejszych koncepcji powiązania danych w formularzach systemu Windows jest powiadomienie o zmianie. Aby zapewnić, że źródło danych i powiązane kontrolki zawsze mają najnowsze dane, należy dodać powiadomienie o zmianie powiązania danych. W szczególności chcesz mieć pewność, że powiązane kontrolki są powiadamiane o zmianach wprowadzonych w ich źródle danych, a źródło danych jest powiadamiane o zmianach wprowadzonych we powiązanych właściwościach kontrolki.
Istnieją różne rodzaje powiadomień o zmianie w zależności od rodzaju powiązania danych:
Proste powiązanie, w którym jedna właściwość kontrolki jest powiązana z pojedynczym wystąpieniem obiektu.
Powiązanie oparte na liście, które może zawierać jedną właściwość kontrolki powiązaną z właściwością elementu na liście lub właściwość kontrolki powiązaną z listą obiektów.
Ponadto w przypadku tworzenia kontrolek formularzy systemu Windows do powiązywania danych należy zastosować wzorzec PropertyNameChanged do tych kontrolek, aby zmiany w powiązanej właściwości były propagowane do źródła danych.
Powiadomienie o zmianie powiązania prostego
W przypadku prostego powiązania obiekty biznesowe muszą podać powiadomienie o zmianie, gdy wartość powiązanej właściwości ulegnie zmianie. Można to zrobić, ujawniając PropertyNamezmienione zdarzenie dla każdej właściwości obiektu biznesowego i powiązanie obiektu biznesowego z kontrolkami za pomocą BindingSource lub preferowanej metody, w której obiekt biznesowy implementuje interfejs INotifyPropertyChanged i zgłasza zdarzenie PropertyChanged, gdy wartość właściwości ulegnie zmianie. Aby uzyskać więcej informacji, zobacz Jak zaimplementować interfejs INotifyPropertyChanged. W przypadku używania obiektów implementujących interfejs INotifyPropertyChanged nie trzeba używać BindingSource do powiązania obiektu z kontrolką, ale zaleca się użycie BindingSource.
Powiadomienie o zmianie powiązania List-Based
Formularze systemu Windows opierają się na liście powiązanej, aby dostarczyć informacje o zmianach właściwości (gdy zmienia się wartość właściwości elementu listy) oraz o zmianach listy (gdy element jest usuwany lub dodawany do listy) do kontrolek powiązanych. W związku z tym listy używane do powiązania danych muszą implementować IBindingList, który udostępnia oba typy powiadomień o zmianie. BindingList<T> to ogólna implementacja IBindingList i jest przeznaczona do użycia z powiązaniem danych Windows Forms. Można utworzyć BindingList<T>, która zawiera typ obiektu biznesowego, który implementuje INotifyPropertyChanged, a lista automatycznie konwertuje zdarzenia PropertyChanged na zdarzenia ListChanged. Jeśli lista powiązana nie jest obiektem IBindingList, należy powiązać listę obiektów z kontrolkami Windows Forms przy użyciu składnika BindingSource. Składnik BindingSource zapewni konwersję właściwości na listę, podobnie jak ma to miejsce w przypadku BindingList<T>. Aby uzyskać więcej informacji, zobacz Jak generować powiadomienia o zmianach za pomocą BindingSource i interfejsu INotifyPropertyChanged.
Powiadomienie o zmianach dla kontrolek niestandardowych
Na koniec, od strony sterowania, należy udostępnić zdarzenie PropertyNameZmieniono dla każdej właściwości, która ma być powiązana z danymi. Zmiany właściwości kontrolki są następnie propagowane do powiązanego źródła danych. Aby uzyskać więcej informacji, zobacz Jak zastosować wzorzec zmiany nazwy właściwości
Zobacz też
- BindingSource
- INotifyPropertyChanged
- BindingList<T>
- Wiązanie danych dla formularzy Windows
- Źródła danych obsługiwane przez Windows Forms
- powiązanie danych i formularzy systemu Windows
.NET Desktop feedback