Wskazówki: powiązywanie kontrolek WPF z zestawem danych
W tym przykładzie tworzymy aplikacji WPF, zawierający formantów powiązanych z danymi.Formanty są powiązane z rekordów produktu, które znajdują się w zestawie danych.Będzie także dodać przyciski do przeglądania produktów i zapisać zmiany w produkcie rekordów.
W instruktażu przedstawiono następujące zagadnienia:
Tworzenie aplikacji programu WPF i jest generowany z danych w bazie danych AdventureWorksLT zestawu danych.
Tworzenie zestawu formantów powiązanych z danymi, przeciągając tabelę danych z źródła danych okno do okna w Projektancie WPF.
Tworzenie przycisków Przejdź do przodu i wstecz za pośrednictwem produktu rekordów.
Utworzenie przycisku, który zapisuje zmiany wprowadzone przez użytkownika do rekordów produktu do tabeli danych i źródła danych.
[!UWAGA]
Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.
Wymagania wstępne
Następujące składniki są wymagane do przeprowadzenia tego instruktażu:
Visual Studio
Dostęp do uruchamiane wystąpienie programu SQL Server lub SQL Server Express zawierającej AdventureWorksLT przykładowej bazy danych dołączone do niego.Możesz pobrać z bazy danych AdventureWorksLT witryny sieci Web w witrynie CodePlex.
Znajomość następujące pojęcia jest również przydatne, ale nie jest wymagane do ukończenia Instruktaż:
Zestawy danych i TableAdapters.Aby uzyskać więcej informacji, zobacz Praca z zestawami danych w Visual Studio i TableAdapter — Przegląd.
Praca z projektanta WPF.Aby uzyskać więcej informacji, zobacz WPF Designer omówienie.
Wiązanie danych WPF.Aby uzyskać więcej informacji, zobacz Przegląd Wiązanie danych.
Tworzenie projektu
Utwórz nowy projekt WPF.Projekt służy do wyświetlenia rekordów produktu.
Aby utworzyć projekt
Uruchom program Visual Studio.
W menu Plik, wskaż Nowy, a następnie kliknij przycisk Projekt.
Rozwiń węzeł Visual Basic lub Visual C#, a następnie wybierz opcję Windows.
Wybierz aplikacji WPF szablon projektu.
W Nazwa wpisz AdventureWorksProductsEditor i kliknij przycisk OK.
Program Visual Studio tworzy AdventureWorksProductsEditor projektu.
Tworzenie zestawu danych dla aplikacji
Przed utworzeniem formantów powiązanych z danymi, należy zdefiniować model danych aplikacji i dodać go do źródła danych okna.W tym przykładzie tworzymy zestawu danych do użycia jako modelu danych.
Tworzenie zestawu danych
W menu Dane kliknij przycisk Pokaż źródła danych.
Źródła danych zostanie otwarte okno.
W źródła danych okna, kliknij przycisk Dodaj nowe źródło danych.
Zostanie otwarty Kreator konfiguracji źródła danych.
Na stronie Wybierz typ źródła danych zaznacz Baza danych, a następnie kliknij Dalej.
Na Wybierz Model bazy danych zaznacz opcję zestawu danych, a następnie kliknij przycisk Dalej.
Na Wybieranie połączenia danych swojego strony, wybierz jedną z następujących czynności:
Jeśli połączenie danych z bazy danych AdventureWorksLT próbki jest dostępna na liście rozwijanej, zaznacz go, a następnie kliknij przycisk Dalej.
—lub—
Kliknij przycisk nowe połączenie i Utwórz połączenie z bazą danych AdventureWorksLT.
Na zapisać ciąg połączenia do pliku konfiguracji aplikacji zaznacz opcję Tak, Zapisz jako połączenia pole wyboru, a następnie kliknij przycisk Dalej.
Na Wybierz obiekty bazy danych użytkownika strony, a następnie rozwiń tabel, a następnie wybierz opcję produktu (SalesLT) tabeli.
Kliknij Zakończ.
Program Visual Studio dodaje nowy plik AdventureWorksLTDataSet.xsd do projektu, i dodaje odpowiedni AdventureWorksLTDataSet elementu do źródła danych okna.Plik AdventureWorksLTDataSet.xsd definiuje typizowaną zestawu danych o nazwie AdventureWorksLTDataSet i Obiekt TableAdapter o nazwie ProductTableAdapter.W dalszej części tej procedury będą używane ProductTableAdapter do wypełnienia zestawu danych z danymi i zapisać zmiany w bazie danych.
Skompiluj projekt.
Edytowanie domyślnej metody wypełnienia Obiekt TableAdapter
Aby wypełnić zestaw danych z danymi, należy użyć Fill metody ProductTableAdapter.Domyślnie Fill wypełnienia metody ProductDataTable w AdventureWorksLTDataSet ze wszystkich wierszy danych z tabeli produktu.Można zmienić tę metodę, aby zwracać tylko podzbiór wierszy.W przypadku tej procedury zmodyfikować Fill metodę w celu zwrócenia tylko wiersze, dla produktów, które mają następującą liczbę zdjęć.
Aby załadować wiersze produktu, które ma następującą liczbę zdjęć
W Eksploratora rozwiązań, kliknij dwukrotnie plik AdventureWorksLTDataSet.xsd.
Otwiera designer zestawu danych.
W projektancie, kliknij prawym przyciskiem myszy Fill,GetData() badania i wybierz Konfiguruj.
Kreatora konfiguracji Obiekt TableAdapter otwiera.
W Wpisz instrukcję SQL Dodaj klauzuli WHERE następujące po SELECT instrukcję, w polu tekstowym.
WHERE ThumbnailPhotoFileName <> 'no_image_available_small.gif'
Kliknij Zakończ.
Definiowanie interfejsu użytkownika
Dodaj kilka przycisków w oknie modyfikując XAML w programie WPF Designer.W dalszej części tej procedury należy dodać kod, który umożliwia użytkownikom przewiń za pośrednictwem i zapisać zmiany rekordów produktów przy użyciu tych przycisków.
Aby zdefiniować okna interfejsu użytkownika
W Eksploratora rozwiązań, kliknij dwukrotnie pozycję MainWindow.xaml.
Otwiera okno w Projektancie WPF.
W XAML Wyświetlanie projektanta, Dodaj następujący kod między <Grid> znaczniki:
<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 z danymi
Tworzenie formantów wyświetlanych rekordów klientów, przeciągając produktu tabeli z źródła danych okno do projektanta WPF.
Aby utworzyć formantów powiązanych z danymi
W źródła danych okna, kliknij menu rozwijane dla produktu a następnie wybierz węzeł Szczegóły.
Rozwiń węzeł produktu węzła.
W tym przykładzie niektóre pola nie zostaną wyświetlone tak kliknij menu rozwijane obok następujące węzły i wybierz Brak:
ProductCategoryID
ProductModelID
ThumbnailPhotoFileName
może występować
Data modyfikacji
Kliknij menu rozwijane obok ThumbNailPhoto a następnie wybierz węzeł obraz.
[!UWAGA]
Domyślnie elementy w źródła danych oknie, które reprezentują obrazy zarządzasz ich domyślna wartość Brak.Jest to spowodowane obrazy są przechowywane jako tablice bajtów w bazach danych i tablice bajtów może zawierać żadnego elementu z prostych tablica bajtów do pliku wykonywalnego dużych aplikacji.
Z źródła danych okna, przeciągnij produktu węzeł do wiersza siatki, w obszarze wiersza, który zawiera przyciski.
Program Visual Studio generuje XAML, która definiuje zestaw formantów powiązanych z danymi w produkty tabeli.Generuje kod, który ładuje dane.Aby uzyskać więcej informacji na temat wygenerowanego kodu i XAML, zobacz Powiązywanie kontrolek WPF z danymi w Visual Studio.
W projektancie, kliknij pole tekstowe identyfikator produktu etykiety.
W właściwości okna, zaznacz pole wyboru obok pozycji IsReadOnly właściwości.
Nawigowanie po rekordach produktu
Dodaj kod, który umożliwia użytkownikom przewijanie rekordów produktu przy użyciu < i > przycisków.
Aby umożliwić użytkownikom przechodzenie produktu rekordy
W projektancie, kliknij dwukrotnie < przycisk na powierzchni okna.
Visual Studio otwiera plik kodem i tworzy nowy backButton_Click program obsługi zdarzeń dla Click zdarzenia.
Modyfikuj Window_Loaded obsługi zdarzeń tak ProductViewSource, AdventureWorksLTDataSet, i AdventureWorksLTDataSetProductTableAdapter są poza metodą i dostępne dla całego formularza.Zadeklarować tylko te globalnych do formularza, przypisz mu w ramach Window_Loaded programu obsługi zdarzeń podobny do następującego:
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_Click obsługi zdarzeń:
If ProductViewSource.View.CurrentPosition > 0 Then ProductViewSource.View.MoveCurrentToPrevious() End If
if (productViewSource.View.CurrentPosition > 0) { productViewSource.View.MoveCurrentToPrevious(); }
Powrót do projektanta i kliknij dwukrotnie > przycisku.
Dodaj następujący kod do nextButton_Click obsługi zdarzeń:
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 w produkcie rekordów
Dodaj kod, który umożliwia użytkownikom zapisać zmiany w produkcie rekordów przy użyciu zapisać zmiany przycisku.
Aby dodać możliwość zapisać zmiany rekordów produktu
W projektancie, kliknij dwukrotnie Zapisz zmiany przycisku.
Visual Studio otwiera plik kodem i tworzy nowy saveButton_Click program obsługi zdarzeń dla Click zdarzenia.
Dodaj następujący kod do saveButton_Click obsługi zdarzeń:
AdventureWorksLTDataSetProductTableAdapter.Update(AdventureWorksLTDataSet.Product)
adventureWorksLTDataSetProductTableAdapter.Update(AdventureWorksLTDataSet.Product);
[!UWAGA]
W tym przykładzie zastosowano Save metody TableAdapter Aby zapisać zmiany.Jest to odpowiednie w tej procedury, ponieważ jest zmieniane tylko jeden danych tabeli.Jeśli musisz zapisać zmiany z wieloma tabelami danych, można użyć również UpdateAll metody TableAdapterManager generującego programu Visual Studio z swojego zestawu danych.Aby uzyskać więcej informacji, zobacz TableAdapterManager — Przegląd.
Testowanie aplikacji
Tworzenie i uruchamianie aplikacji.Należy sprawdzić, można wyświetlić i aktualizowanie rekordów produktu.
Aby przetestować aplikację
Naciśnij klawisz F5.
Uruchamia aplikację i tworzy.Sprawdź, czy:
Pola tekstowe są wyświetlane dane z pierwszy rekord produktu zdjęcia.Ten produkt zawiera produktu 713 Identyfikatora i nazwy Jersey Logo tuleja długie, S.
Można kliknąć > lub < przycisków, aby poruszanie się po inne rekordy produktu.
W jednym z rekordów produktu, należy zmienić rozmiar wartości, a następnie kliknij przycisk zapisać zmiany.
Zamknij aplikację, a następnie ponownie uruchom aplikację naciskając klawisz F5 w programie Visual Studio.
Przejdź do rekordu produktu, który został zmieniony, a następnie sprawdź, czy zmiana jest trwała.
Zamknij aplikację.
Następne kroki
Po wykonaniu tej procedury, można wykonać następujące zadania:
Dowiedz się, jak używać źródła danych okna w programie Visual Studio można powiązać WPF steruje na inne typy źródeł danych.Aby uzyskać więcej informacji, zobacz Wskazówki: powiązywanie kontrolek WPF z usługą danych programu WCF.
Dowiedz się, jak używać źródła danych okna w programie Visual Studio, aby wyświetlić dane dotyczące (oznacza to, że dane w relacji nadrzędny podrzędny) formanty WPF.Aby uzyskać więcej informacji, zobacz Wskazówki: wyświetlanie powiązanych danych w aplikacji WPF.
Zobacz też
Zadania
Porady: powiązanie formantów WPF z danymi w Visual Studio
Koncepcje
Powiązywanie kontrolek WPF z danymi w Visual Studio
Praca z zestawami danych w Visual Studio