Instruktaż: Powiązaniem formantów WPF z zestawu danych
W tym instruktażu będzie utworzyć aplikacji WPF , która zawiera formanty powiązane z danymi.Formanty są powiązane z rekordy produktów, które są hermetyzowane w elemencie dataset.Można również dodać przyciski, aby przeglądać produktów i zapisać wprowadzone zmiany rekordów produktu.
W tym instruktażu przedstawiono następujące zadania:
Tworzenie aplikacji WPF i zestawu danych, który jest generowany na podstawie danych w AdventureWorksLT przykładowe baza danych.
Tworzenie zestawu formantów powiązanych danych przez przeciągnięcie tabela danych z Źródła danychokno okno w projektancie WPF .
Tworzenie przycisków Przejdź przekazywać i do tyłu między rekordami produktu.
Tworzenie przycisku zapisuje zmiany wprowadzone przez użytkowników do tabela danych i źródło danychrekordów produktu.
[!UWAGA]
Na danym komputerze mogą być używane inne nazwy lub lokalizacje pewnych elementów interfejsu użytkownika programu Visual Studio, które są używane w poniższych instrukcjach. Używana wersja programu Visual Studio oraz jej ustawienia określają te elementy. Aby uzyskać więcej informacji, zobacz Visual Studio, ustawienia.
Wymagania wstępne
Potrzebne do przeprowadzenia tego instruktażu następujące składniki:
Visual Studio
Dostęp do uruchomione wystąpienie programu SQL Server lub SQL Server Express, który ma dołączony do niego AdventureWorksLT próbki baza danych .Możesz pobierać AdventureWorksLT baza danych z w witrynie CodePlex w sieć Web witrynę.
Uprzednia wiedza następujące pojęcia jest również przydatne, ale nie jest wymagane do ukończenia Instruktaż:
Obiektów DataSet i TableAdapters.Aby uzyskać więcej informacji, zobacz Praca z zestawów danych w programie Visual Studio i Przegląd TableAdapter.
Praca z projektanta WPF .Aby uzyskać więcej informacji, zobacz WPF i Silverlight Designer, omówienie.
Powiązanie danych WPF .Aby uzyskać więcej informacji, zobacz Omówienie wiązania danych.
Tworzenie projektu
Tworzenie nowegoprojekt WPF. projekt będzie wyświetlić rekordy produktu.
Aby utworzyć projekt
Uruchom Visual Studio.
Na pliku menu, wskaż Nowy, a następnie kliknij przycisk Projekt.
Rozwiń węzeł Visual Basic lub Visual C#, a następnie wybierz Windows.
Wybierz aplikacji WPF projektszablon.
W Nazwa wpisz AdventureWorksProductsEditor i kliknij przycisk OK.
Tworzy Visual Studio AdventureWorksProductsEditorprojekt.
Tworzenie zestawu danych dla aplikacji
Zanim można utworzyć formanty powiązane z danymi musi zdefiniować modelu danych dla aplikacji i dodać go do Źródła danychokno. W tym instruktażu, możesz utworzyć dataset jako model danych.
utworzyć zestawu danych
Na danych menu, kliknij przycisk Pokaż źródeł danych.
Źródła danychzostanie otwarteokno .
W Źródła danych okno, kliknij Dodać nowe źródło danych.
Kreatora konfiguracji źródła danych otwiera.
Na Wybierz typ źródła danych stronę, wybierz opcję bazy danych, a następnie kliknij przycisk Dalej.
Na Wybierz Model bazy danych stronę, wybierz opcję Dataset, a następnie kliknij przycisk Dalej.
Na Wybieranie połączenia danych strony, wybierz jedną z następujących opcji:
Jeśli połączenie danych z próbki AdventureWorksLT baza danych jest dostępna na liście rozwijanej, zaznacz go, a następnie kliknij przycisk Dalej.
- lub -
Kliknij przycisk Nowe połączenie i utworzyć połączenie z AdventureWorksLT baza danych.
Na Zapisać aplikacji skonfigurować plik ciągu połączenia stronę, wybierz opcję Tak, Zapisz połączenie jako pole wyboru Dalej.
Na Wybierz obiekty bazy danych użytkownika stronę, a następnie rozwiń tabel, a następnie wybierz produktu (SalesLT) tabeli.
Kliknij przycisk Zakończenie.
Visual Studio nowy plik AdventureWorksLTDataSet.xsd jest dodawany do projekti dodaje, odpowiadającego AdventureWorksLTDataSet element do Źródła danychokno. Plik AdventureWorksLTDataSet.xsd definiuje maszynowy dataset, o nazwie AdventureWorksLTDataSet i TableAdapter, o nazwie ProductTableAdapter.Później w tym instruktażu będą używać ProductTableAdapter do wypełnienia obiektu dataset z danych i zapisać zmiany baza danych.
Skompiluj projekt.
Edycja wypełnienia domyślnej metody TableAdapter
Aby wypełnić zestaw danych z danymi, użyj Fill metoda ProductTableAdapter. Domyślnie Fillwypełnia metoda ProductDataTable w AdventureWorksLTDataSet z wszystkich wierszy danych z tabeli produktu. Ta metoda zwraca tylko podzbiór wierszy można modyfikować.W tym instruktażu zmodyfikować Fill metoda zwraca tylko wiersze dla produktów, które mają zdjęcia.
Aby załadować wiersze produktu, które mają zdjęcia
W Solution Explorer, kliknij dwukrotnie plik AdventureWorksLTDataSet.xsd.
Otwiera Dataset projektant .
W projektant, kliknij prawym przyciskiem myszy Fill,GetData() kwerenda , a następnie wybierz Konfigurowanie.
Kreatora konfiguracji TableAdapter otwiera.
W Enter instrukcji SQL strony, należy dodać następującą klauzulę WHERE, po SELECT wyciąg w pole tekstowe.
WHERE ThumbnailPhotoFileName <> 'no_image_available_small.gif'
Kliknij przycisk Zakończenie.
Definiowanie interfejsu użytkownika
Dodać kilka przycisków do okno , zmieniając XAML w projektancie WPF .Później w tym instruktażu należy dodać kod, który umożliwia użytkownikom przewijania poprzez i Zapisz zmiany rekordów produktów za pomocą tych przycisków.
Aby zdefiniować użytkownik interfejs okno
W Solution Explorer, kliknij dwukrotnie pozycję MainWindow.xaml.
okno zostanie otwarte w projektancie WPF .
W XAML wyświetlić projektant, Dodaj następujący kod między <Grid> znaczników:
<Grid.RowDefinitions> <RowDefinition Height="75" /> <RowDefinition Height="625" /> </Grid.RowDefinitions> <Button HorizontalAlignment="Left" Margin="22,20,0,24" Name="backButton" Width="75"><</Button> <Button HorizontalAlignment="Left" Margin="116,20,0,24" Name="nextButton" Width="75">></Button> <Button HorizontalAlignment="Right" Margin="0,21,46,24" Name="saveButton" Width="110">Save changes</Button>
Skompiluj projekt.
Tworzenie formantów powiązanych danych
Tworzenie kontrolek, które wyświetlania rekordów kontrahent , przeciągając produktu tabeli z Źródła danychokno projektanta WPF .
Aby utworzyć formanty powiązane z danymi
W Źródła danych okno, kliknij menu rozwijane dla produktu węzeł i wybierz Szczegóły.
Rozwiń węzeł produktu węzła.
W tym przykładzie niektóre pola nie będą wyświetlane tak kliknij menu rozwijane obok następujące węzły i wybierz Brak:
ProductCategoryID
ProductModelID
ThumbnailPhotoFileName
ROWGUID
ModifiedDate
Kliknij menu rozwijane obok ThumbNailPhoto węzeł i wybierz obrazu.
[!UWAGA]
Domyślnie pozycje w Źródła danych okno , reprezentujące obrazy mają ich domyślna kontrola ustawiona na Brak. Jest tak, ponieważ obrazy są przechowywane jako tablice bajt w bazach danych i tablice bajt może zawierać wszystko, od prostych tablicy bajtów do pliku wykonywalnego aplikacji duże.
Z Źródła danych okno, przeciągnij produktu węzeł do wiersza siatki w obszarze wiersza, który zawiera przyciski.
Visual Studio generuje XAML , który definiuje zestaw formantów, które są powiązane z danymi w produktów tabeli.Również generuje kod, który powoduje załadowanie danych.Aby uzyskać więcej informacji na temat generowanych XAML i kod, zobacz Wiązanie formantów WPF do danych w programie Visual Studio.
W projektant, kliknij pole tekstowe obok ID produktu etykiety.
W Właściwości oknoobok zaznacz pole wyboru IsReadOnlywłaściwość.
Nawigowanie po rekordach produktu
Dodaj kod, który umożliwia użytkownikom do przechodzenia między rekordami produktu za pomocą <</c1> i przyciski.>
Aby umożliwić użytkownikom przechodzenie rekordy produktu
W projektant, kliknij dwukrotnie <</c2> przycisku na powierzchni okno .
Visual Studio otwiera plik związany z kodem i tworzy nowy backButton_Clickobsługi zdarzenie Click zdarzenie.
Modyfikowanie Window_Loadedprogramu obsługi zdarzenie tak ProductViewSource, AdventureWorksLTDataSet, i AdventureWorksLTDataSetProductTableAdapter są poza metoda i dostępne dla całego formularz. Tylko zadeklarować te globalnych do formularz, przypisać je w ramach Window_Loadedobsługi zdarzenie podobne do następujących:
Dim ProductViewSource As System.Windows.Data.CollectionViewSource Dim AdventureWorksLTDataSet As AdventureWorksProductsEditor.AdventureWorksLTDataSet Dim AdventureWorksLTDataSetProductTableAdapter As AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded AdventureWorksLTDataSet = CType(Me.FindResource("AdventureWorksLTDataSet"), AdventureWorksProductsEditor.AdventureWorksLTDataSet) 'Load data into the table Product. You can modify this code as needed. AdventureWorksLTDataSetProductTableAdapter = New AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter() AdventureWorksLTDataSetProductTableAdapter.Fill(AdventureWorksLTDataSet.Product) ProductViewSource = CType(Me.FindResource("ProductViewSource"), System.Windows.Data.CollectionViewSource) ProductViewSource.View.MoveCurrentToFirst() End Sub
private AdventureWorksProductsEditor.AdventureWorksLTDataSet AdventureWorksLTDataSet; private AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter adventureWorksLTDataSetProductTableAdapter; private System.Windows.Data.CollectionViewSource productViewSource; private void Window_Loaded(object sender, RoutedEventArgs e) { AdventureWorksLTDataSet = ((AdventureWorksProductsEditor.AdventureWorksLTDataSet)(this.FindResource("adventureWorksLTDataSet"))); // Load data into the table Product. You can modify this code as needed. adventureWorksLTDataSetProductTableAdapter = new AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter(); adventureWorksLTDataSetProductTableAdapter.Fill(AdventureWorksLTDataSet.Product); productViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("productViewSource"))); productViewSource.View.MoveCurrentToFirst(); }
Dodaj następujący kod do backButton_Clickprogramu obsługi zdarzenie :
If ProductViewSource.View.CurrentPosition > 0 Then ProductViewSource.View.MoveCurrentToPrevious() End If
if (productViewSource.View.CurrentPosition > 0) { productViewSource.View.MoveCurrentToPrevious(); }
Powrócić do projektant , a następnie kliknij dwukrotnie pozycję > przycisku.
Dodaj następujący kod do nextButton_Clickprogramu obsługi zdarzenie :
If ProductViewSource.View.CurrentPosition < CType(ProductViewSource.View, CollectionView).Count - 1 Then ProductViewSource.View.MoveCurrentToNext() End If
if (productViewSource.View.CurrentPosition < ((CollectionView)productViewSource.View).Count - 1) { productViewSource.View.MoveCurrentToNext(); }
Zapisywanie zmian rekordy produktu
Dodaj kod, który umożliwia użytkownikom zapisać zmiany produktu rekordów za pomocą zapisać zmiany przycisku.
Aby dodać możliwość zapisania zmian do rekordów produktu
W projektant, kliknij dwukrotnie Zapisać zmiany przycisku.
Visual Studio otwiera plik związany z kodem i tworzy nowy saveButton_Clickobsługi zdarzenie Click zdarzenie.
Dodaj następujący kod do saveButton_Clickprogramu obsługi zdarzenie :
AdventureWorksLTDataSetProductTableAdapter.Update(AdventureWorksLTDataSet.Product)
adventureWorksLTDataSetProductTableAdapter.Update(AdventureWorksLTDataSet.Product);
[!UWAGA]
W tym przykładzie użyto Save metoda TableAdapter , aby zapisać zmiany. Jest to właściwe, w tym instruktażu, ponieważ tylko jedna tabela danych został zmieniony.Jeśli musisz zapisać zmiany w wielu tabel danych, można również użyć UpdateAll metoda TableAdapterManager Visual Studio generuje z zestawu danych. Aby uzyskać więcej informacji, zobacz Przegląd TableAdapterManager.
Testowanie aplikacji
Tworzenie i uruchamianie aplikacji.Sprawdź, czy można przeglądać i aktualizacja rekordy produktu.
Aby przetestować aplikację
Press F5.
Aplikacja tworzy i uruchamia.Sprawdź, co następuje:
Pola tekstowe przedstawiają dane z pierwszego rekordu produktu, zawierający zdjęcie.Produkt ten posiada 713 identyfikator produktu i nazwa Long tuleja Logo Jersey, S.
Można kliknąć > lub <</c4> przyciski do nawigowania inne rekordy produktu.
W jednym z rekordów produktu, zmienianie rozmiar wartość, a następnie kliknij przycisk zapisać zmiany.
Zamknij aplikację, a następnie uruchom ponownie aplikację przez naciśnięcie F5 w Visual Studio.
Przejdź do rekordu produktu, który został zmieniony i sprawdź, czy zmiana jest trwała.
Zamknij aplikację.
Następne kroki
Po ukończeniu tego instruktażu, można wykonywać następujące zadania:
Informacje o sposobie używania Źródła danychokno w Visual Studio powiązać WPF formantów do innych typów źródeł danych. Aby uzyskać więcej informacji, zobacz Instruktaż: Powiązaniem formantów WPF usłudze danych WCF i Instruktaż: Powiązanie formantów WPF na Model danych jednostki.
Informacje o sposobie używania Źródła danychokno w Visual Studio do wyświetlania powiązanych danych (to znaczy w nadrzędny -element podrzędnyrelacja) w formantach WPF . Aby uzyskać więcej informacji, zobacz Instruktaż: Wyświetlanie powiązanych danych w aplikacji WPF.
Zobacz też
Zadania
Jak: powiązanie formantów WPF do danych w programie Visual Studio
Instruktaż: Powiązanie formantów WPF na Model danych jednostki
Instruktaż: Powiązaniem formantów WPF usłudze danych WCF
Koncepcje
Wiązanie formantów WPF do danych w programie Visual Studio
Praca z zestawów danych w programie Visual Studio