Udostępnij przez


Wiązanie kontrolek Windows Forms z danymi w aplikacjach .NET Framework

Uwaga / Notatka

Klasy DataSet i powiązane klasy to starsze technologie .NET Framework z początku 2000 roku, które umożliwiają aplikacjom pracę z danymi w pamięci, gdy aplikacje są odłączone od bazy danych. Technologie te są szczególnie przydatne w przypadku aplikacji, które umożliwiają użytkownikom modyfikowanie danych i utrwalanie zmian w bazie danych. Mimo że zestawy danych są sprawdzoną pomyślną technologią, zalecaną metodą dla nowych aplikacji platformy .NET jest użycie platformy Entity Framework Core. Program Entity Framework zapewnia bardziej naturalny sposób pracy z danymi tabelarycznymi jako modelami obiektów i ma bardziej prosty interfejs programowania.

Dane dla użytkowników aplikacji można wyświetlać, wiążąc dane z formularzami systemu Windows. Aby utworzyć te kontrolki powiązane z danymi, przeciągnij elementy z okna Źródła danych do projektanta formularzy systemu Windows w programie Visual Studio.

Operacja przeciągania źródła danych

Wskazówka

Jeśli okno Źródła danych nie jest widoczne, możesz go otworzyć, wybierając pozycję Wyświetl> inneźródła danych systemuWindows> lub naciskając Shift+Alt+D. Aby wyświetlić okno Źródła danych , musisz mieć otwarty projekt w programie Visual Studio.

Przed przeciągnięciem elementów można ustawić typ kontrolki, z którą chcesz powiązać. Różne wartości są wyświetlane w zależności od tego, czy wybrano samą tabelę, czy pojedynczą kolumnę. Można również ustawić wartości niestandardowe. W przypadku tabeli Szczegóły oznacza, że każda kolumna jest powiązana z oddzielną kontrolką.

Wiązanie źródła danych z kontrolką DataGridView

Kontrolki BindingSource i BindingNavigator

Składnik BindingSource służy dwóm celom. Najpierw zapewnia warstwę abstrakcji podczas wiązania kontrolek z danymi. Kontrolki w formularzu są powiązane ze BindingSource składnikiem zamiast bezpośrednio ze źródłem danych. Po drugie, może zarządzać kolekcją obiektów. Dodanie typu do obiektu BindingSource powoduje utworzenie listy tego typu.

Aby uzyskać więcej informacji na temat BindingSource składnika, zobacz:

Kontrolka BindingNavigator udostępnia interfejs użytkownika do nawigowania po danych wyświetlanych przez aplikację systemu Windows.

Wiązanie danych w kontrolce DataGridView

W przypadku kontrolki DataGridView cała tabela jest powiązana z jedną kontrolką. Po przeciągnięciu kontrolki DataGridView do formularza pojawia się również pasek narzędzi do nawigowania po rekordach (BindingNavigator). Zestaw danych, TableAdapter, BindingSourcei BindingNavigator pojawi się na pasku składników. Na poniższej ilustracji dodano również tabelę TableAdapterManager , ponieważ tabela Customers ma relację z tabelą Orders (Zamówienia). Wszystkie te zmienne są deklarowane w kodzie generowanym automatycznie jako prywatne pola w klasie formularza. Wygenerowany automatycznie kod do wypełniania elementu DataGridView znajduje się w procedurze obsługi zdarzeń Form_Load . Kod zapisywania danych w celu zaktualizowania bazy danych znajduje się w Save obsłudze zdarzenia powiązanej z BindingNavigator. Możesz przenieść lub zmodyfikować ten kod zgodnie z potrzebami.

GridView z BindingNavigator

Zachowanie kontrolek DataGridView i BindingNavigator można dostosować, klikając etykietę inteligentną w prawym górnym rogu każdej z nich.

Tagi inteligentne DataGridView i Binding Navigator

Jeśli kontrolki wymagane przez aplikację nie są dostępne w oknie Źródła danych , możesz dodać kontrolki. Aby uzyskać więcej informacji, zobacz Dodawanie kontrolek niestandardowych do okna Źródła danych.

Możesz również przeciągać elementy z okna Źródła danych na kontrolki znajdujące się już w formularzu, aby powiązać kontrolkę z danymi. Kontrolka, która jest już powiązana z danymi, ma ustawienia powiązań danych zresetowane do najnowszego przeciągniętego na nią elementu. Aby kontrolki mogły być prawidłowymi miejscami docelowymi upuszczania, muszą mieć możliwość wyświetlania bazowego typu danych elementu przeciągniętego z okna Źródła danych. Na przykład, nie jest prawidłowe przeciąganie elementu, który ma typ danych DateTime, na CheckBox element, ponieważ CheckBox nie jest w stanie wyświetlić daty.

Wiązanie danych z poszczególnymi kontrolkami

Po powiązaniu źródła danych z Szczegółami, każda kolumna w zestawie danych jest powiązana z oddzielną kontrolką.

Wiązanie źródła danych ze szczegółami

Ważne

Pamiętaj, że na poprzedniej ilustracji przeciągnij z właściwości Orders tabeli Customers, a nie z tabeli Orders (Zamówienia). Po powiązaniu Customer.Orders z właściwością polecenia nawigacji wykonane w kontrolce DataGridView są natychmiast odzwierciedlane w kontrolkach szczegółów. W przypadku przeciągnięcia z tabeli Orders kontrolki nadal będą powiązane z zestawem danych, ale nie zostaną zsynchronizowane z elementem DataGridView.

Na poniższej ilustracji przedstawiono domyślne kontrolki powiązane z danymi, które są dodawane do formularza po powiązaniu właściwości Orders w tabeli Customers z Details w oknie Źródła danych.

Tabela Zamówień powiązana ze szczegółami

Należy również pamiętać, że każda kontrolka ma tag inteligentny. Ten tag umożliwia dostosowania, które mają zastosowanie tylko do tej kontrolki.