Wiązanie kontrolek WPF z danymi w aplikacjach .NET Framework

Uwaga

Zestawy danych 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. Są one szczególnie przydatne w przypadku aplikacji, które umożliwiają użytkownikom modyfikowanie danych i utrwalanie zmian z powrotem w bazie danych. Mimo że zestawy danych okazały się bardzo udaną technologią, zalecamy, aby nowe aplikacje platformy .NET używały platformy Entity Framework Core. Program Entity Framework zapewnia bardziej naturalny sposób pracy z danymi tabelarycznymi jako modelami obiektów i ma prostszy interfejs programowania.

Dane dla użytkowników aplikacji można wyświetlać, wiążąc dane z kontrolkami WPF. Aby utworzyć te kontrolki powiązane z danymi, możesz przeciągnąć elementy z okna Źródła danych do Projektant WPF w programie Visual Studio. W tym temacie opisano niektóre z najbardziej typowych zadań, narzędzi i klas, których można użyć do tworzenia aplikacji WPF powiązanych z danymi.

Aby uzyskać ogólne informacje na temat tworzenia kontrolek powiązanych z danymi w programie Visual Studio, zobacz Wiązanie kontrolek z danymi w programie Visual Studio. Aby uzyskać więcej informacji na temat powiązania danych WPF, zobacz Omówienie powiązania danych.

Zadania związane z wiązaniem kontrolek WPF z danymi

W poniższej tabeli wymieniono zadania, które można wykonać, przeciągając elementy z okna Źródła danych do Projektant WPF.

Zadanie Więcej informacji
Utwórz nowe formanty związane z danymi.

Powiąż istniejące formant z danymi.
Powiązywanie kontrolek WPF z zestawem danych
Utwórz formant, które wyświetlają pokrewne dane w relacji nadrzędny podrzędny: kiedy użytkownik wybierze nadrzędny rekord danych w jednym formancie, inny formant wyświetli powiązane dane podrzędne dla wybranego rekordu. Wyświetlanie powiązanych danych w aplikacjach WPF
Utwórz tabelę odnośników, która wyświetla informacje z jednej tabeli na podstawie wartości pola klucza obcego w innej tabeli. Tworzenie tabel wyszukiwania w aplikacjach WPF
Powiąż formant z obrazem w bazie danych. Powiązywanie kontrolek z obrazami z bazy danych

Prawidłowe miejsca docelowe upuszczania

Elementy można przeciągać w oknie Źródła danych tylko do prawidłowych miejsc docelowych upuszczania w Projektant WPF. Istnieją dwa główne rodzaje z prawidłowych miejsc upuszczania: kontenery i formanty. Kontener jest element interfejsu użytkownika, który zwykle zawiera formanty. Na przykład siatka jest kontenerem i podobnie okno.

Wygenerowany kod XAML i kod

Po przeciągnięciu elementu z okna Źródła danych do Projektant WPF program Visual Studio generuje kod XAML, który definiuje nową kontrolkę związaną z danymi (lub wiąże istniejącą kontrolkę ze źródłem danych). W przypadku niektórych źródeł danych program Visual Studio generuje również kod w pliku za kodem, który wypełnia źródło danych danymi.

W poniższej tabeli wymieniono kod XAML i kod generowany przez program Visual Studio dla każdego typu źródła danych w oknie Źródła danych.

Źródło danych Generowanie pliku XAML, która wiąże formant ze źródłem danych Generowanie kodu, który wypełnia źródło danych danymi
Zestaw danych Tak Tak
Model danych jednostki Tak Tak
Service Tak Nie.
Objekt Tak Nie.

Zestawy danych

Podczas przeciągania tabeli lub kolumny z okna Źródła danych do projektanta program Visual Studio generuje kod XAML, który wykonuje następujące czynności:

  • Dodaje zestaw danych i nowy CollectionViewSource element do zasobów kontenera, do którego został przeciągnięty element. Jest CollectionViewSource to obiekt, który może służyć do nawigowania i wyświetlania danych w zestawie danych.

  • Tworzy wiązania danych dla formantu. Jeśli przeciągniesz element do istniejącego formantu w projektancie, XAML powiąże formant z elementem. Jeśli przeciągniesz element do kontenera, kod XAML utworzy kontrolkę wybraną dla przeciągniętego elementu i powiąże kontrolkę z elementem. Kontrolka jest tworzona wewnątrz nowego Gridelementu .

Visual Studio wprowadza następujące zmiany w pliku powiązanym z kodem:

  • Tworzy procedurę obsługi zdarzeń Loaded dla elementu interfejsu użytkownika, który zawiera kontrolkę. Procedura obsługi zdarzeń wypełnia tabelę danymi, pobiera CollectionViewSource dane z zasobów kontenera, a następnie tworzy pierwszy element danych jako bieżący element. Loaded Jeśli program obsługi zdarzeń już istnieje, program Visual Studio dodaje ten kod do istniejącej procedury obsługi zdarzeń.

Modele danych jednostek

Po przeciągnięciu jednostki lub właściwości jednostki z okna Źródła danych do projektanta program Visual Studio generuje kod XAML, który wykonuje następujące czynności:

  • Dodaje nowy CollectionViewSource element do zasobów kontenera, do którego został przeciągnięty element. Jest CollectionViewSource to obiekt, który może służyć do nawigowania i wyświetlania danych w jednostce.

  • Tworzy wiązania danych dla formantu. Jeśli przeciągniesz element do istniejącego formantu w projektancie, XAML powiąże formant z elementem. Jeśli przeciągniesz element do kontenera, kod XAML utworzy kontrolkę wybraną dla przeciągniętego elementu i powiąże kontrolkę z elementem. Kontrolka jest tworzona wewnątrz nowego Gridelementu .

Visual Studio wprowadza następujące zmiany w pliku powiązanym z kodem:

  • Dodaje nową metodę, która zwraca kwerendy dla elementu, który został przeciągnięty do projektanta (lub elementu zawierającego właściwość, która została przeciągnięta do projektanta). Nowa metoda ma nazwę Get<EntityName>Query, gdzie \<EntityName> jest nazwą jednostki.

  • Tworzy procedurę obsługi zdarzeń Loaded dla elementu interfejsu użytkownika, który zawiera kontrolkę. Procedura obsługi zdarzeń wywołuje metodę Get<EntityName>Query w celu wypełnienia jednostki danymi, pobiera CollectionViewSource dane z zasobów kontenera, a następnie tworzy pierwszy element danych jako bieżący element. Loaded Jeśli program obsługi zdarzeń już istnieje, program Visual Studio dodaje ten kod do istniejącej procedury obsługi zdarzeń.

Usługi

Podczas przeciągania obiektu usługi lub właściwości z okna Źródła danych do projektanta program Visual Studio generuje kod XAML, który tworzy kontrolkę powiązaną z danymi (lub wiąże istniejącą kontrolkę z obiektem lub właściwością). Jednak program Visual Studio nie generuje kodu, który wypełnia obiekt usługi proxy danymi. Musisz napisać ten kod samodzielnie. Przykład, który pokazuje, jak to zrobić, zobacz Wiązanie kontrolek WPF z usługą danych WCF.

Visual Studio generuje plik XAML, który wykonuje następujące czynności:

  • Dodaje nowy CollectionViewSource element do zasobów kontenera, do którego został przeciągnięty element. Jest CollectionViewSource to obiekt, który może służyć do nawigowania i wyświetlania danych w obiekcie zwracanym przez usługę.

  • Tworzy wiązania danych dla formantu. Jeśli przeciągniesz element do istniejącego formantu w projektancie, XAML powiąże formant z elementem. Jeśli przeciągniesz element do kontenera, kod XAML utworzy kontrolkę wybraną dla przeciągniętego elementu i powiąże kontrolkę z elementem. Kontrolka jest tworzona wewnątrz nowego Gridelementu .

Obiekty

Podczas przeciągania obiektu lub właściwości z okna Źródła danych do projektanta program Visual Studio generuje kod XAML, który tworzy kontrolkę związaną z danymi (lub wiąże istniejącą kontrolkę z obiektem lub właściwością). Jednak program Visual Studio nie generuje kodu w celu wypełnienia obiektu danymi. Musisz napisać ten kod samodzielnie.

Uwaga

Klasy niestandardowe muszą być publiczne i domyślnie mają konstruktor bez parametrów. Nie można ich zagnieżdżać klas, które mają "kropkę" w ich składni. Aby uzyskać więcej informacji, zobacz XAML i niestandardowe klasy dla WPF.

Visual Studio generuje plik XAML, który wykonuje następujące czynności:

  • Dodaje nowy CollectionViewSource element do zasobów kontenera, do którego został przeciągnięty element. Jest CollectionViewSource to obiekt, który może służyć do nawigowania i wyświetlania danych w obiekcie.

  • Tworzy wiązania danych dla formantu. Jeśli przeciągniesz element do istniejącego formantu w projektancie, XAML powiąże formant z elementem. Jeśli przeciągniesz element do kontenera, kod XAML utworzy kontrolkę wybraną dla przeciągniętego elementu i powiąże kontrolkę z elementem. Kontrolka jest tworzona wewnątrz nowego Gridelementu .

Zobacz też