Udostępnij za pośrednictwem


Źródła danych obsługiwane przez formularze systemu Windows

Tradycyjnie powiązanie danych jest używane w aplikacjach do korzystania z danych przechowywanych w bazach danych. Dzięki powiązaniu danych formularzy systemu Windows można uzyskiwać dostęp do danych z baz danych, a także danych w innych strukturach, takich jak tablice i kolekcje, o ile zostały spełnione pewne minimalne wymagania.

Struktury, do których można się przyłączyć

W formularzach systemu Windows można powiązać z szeroką gamą struktur — od prostych obiektów (proste powiązanie) do złożonych list, takich jak tabele danych ADO.NET (złożone powiązanie). W przypadku prostego powiązania formularze systemu Windows obsługują powiązanie z właściwościami publicznymi w obiekcie prostym. Powiązanie oparte na liście formularzy systemu Windows zwykle wymaga, aby obiekt obsługiwał interfejs IList lub interfejs IListSource. Ponadto, jeśli powiązujesz za pośrednictwem składnika BindingSource, możesz powiązać z obiektem obsługującym interfejs IEnumerable. Aby uzyskać więcej informacji na temat interfejsów związanych z powiązaniem danych, zobacz Interfaces Related to Data Binding.

Na poniższej liście przedstawiono struktury, do których można powiązać w Windows Forms.

BindingSource
BindingSource jest najczęściej używanym źródłem danych windows Forms i pełni rolę serwera proxy między źródłem danych a kontrolkami windows Forms. Ogólny wzorzec użycia BindingSource polega na powiązaniu kontrolek z BindingSource i powiązaniu BindingSource ze źródłem danych (na przykład tabeli danych ADO.NET lub obiektu biznesowego). BindingSource zapewnia usługi, które umożliwiają i zwiększają poziom obsługi powiązań danych. Na przykład kontrolki oparte na listach formularzy systemu Windows, takie jak DataGridView i ComboBox nie obsługują bezpośrednio powiązania z IEnumerable źródłami danych, można jednak włączyć ten scenariusz przez powiązanie za pomocą BindingSource. W takim przypadku BindingSource przekonwertuje źródło danych na IList.

Proste obiekty
Formularze systemu Windows obsługują właściwości kontrolki powiązania danych z właściwościami publicznymi w wystąpieniu obiektu przy użyciu typu Binding. Formularze systemu Windows obsługują również kontrolki oparte na listach wiązań, na przykład wiązanie kontrolki ListControl z wystąpieniem obiektu, gdy używana jest BindingSource.

tablica lub kolekcja
Aby działać jako źródło danych, lista musi zaimplementować interfejs IList; przykładem może być tablica, która jest wystąpieniem klasy Array. Aby uzyskać więcej informacji na temat tablic, zobacz Jak: Utworzyć tablicę obiektów (Visual Basic).

Ogólnie rzecz biorąc, należy użyć BindingList<T> podczas tworzenia list obiektów dla powiązania danych. BindingList<T> jest ogólną wersją interfejsu IBindingList. Interfejs IBindingList rozszerza interfejs IList przez dodanie właściwości, metod i zdarzeń niezbędnych do powiązania danych dwukierunkowych.

IEnumerable
Kontrolki Windows Forms można powiązać ze źródłami danych, które obsługują interfejs IEnumerable tylko wtedy, gdy są powiązane za pośrednictwem składnika BindingSource.

ADO.NET obiekty danych
ADO.NET zapewnia wiele struktur danych odpowiednich do powiązania. Każda z nich różni się w swojej wyrafinowaniu i złożoności.

  • DataColumn. DataColumn jest podstawowym blokiem konstrukcyjnym DataTable, ponieważ tabela składa się z wielu kolumn. Każda DataColumn ma właściwość DataType, która określa rodzaj danych przechowywanych w kolumnie (na przykład marka samochodu w tabeli opisującej samochody). Możesz prosto powiązać kontrolkę (np. właściwość Text kontrolki TextBox) z kolumną w tabeli danych.

  • DataTable. DataTable to reprezentacja tabeli z wierszami i kolumnami w ADO.NET. Tabela danych zawiera dwie kolekcje: DataColumn, reprezentującą kolumny danych w danej tabeli (które ostatecznie określają rodzaje danych, które można wprowadzić w tej tabeli) i DataRow, reprezentując wiersze danych w danej tabeli. Możesz złożenie powiązać kontrolkę z informacjami zawartymi w tabeli danych (na przykład powiązując kontrolkę DataGridView z tabelą danych). Jednak w przypadku powiązania z DataTablejest to naprawdę powiązanie z domyślnym widokiem tabeli.

  • DataView. DataView to dostosowany widok pojedynczej tabeli danych, która może być filtrowana lub sortowana. Widok danych to "migawka" danych używana przez kontrolki powiązane złożonymi zależnościami. Możesz wiązać dane w widoku danych w sposób prosty lub złożony, ale musisz być świadomy, że łączysz się ze statycznym "obrazem" danych, zamiast z dynamicznym, aktualizującym się źródłem danych.

  • DataSet. DataSet to kolekcja tabel, relacji i ograniczeń danych w bazie danych. Możesz powiązać dane w zestawie danych z prostymi lub złożonymi powiązaniami, ale należy pamiętać, że wiążesz się z domyślnym DataViewManager dla DataSet (zobacz następny punktor).

  • DataViewManager. DataViewManager jest dostosowanym widokiem całego DataSet, analogicznym do DataView, ale z uwzględnieniem relacji. W przypadku kolekcji DataViewSettings można ustawić domyślne filtry i opcje sortowania dla wszystkich widoków, które DataViewManager ma dla danej tabeli.

Zobacz też