Udostępnij za pośrednictwem


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ż:

Tworzenie projektu

Tworzenie nowegoprojekt WPF. projekt będzie wyświetlić rekordy produktu.

Aby utworzyć projekt

  1. Uruchom Visual Studio.

  2. Na pliku menu, wskaż Nowy, a następnie kliknij przycisk Projekt.

  3. Rozwiń węzeł Visual Basic lub Visual C#, a następnie wybierz Windows.

  4. Wybierz aplikacji WPF projektszablon.

  5. 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

  1. Na danych menu, kliknij przycisk Pokaż źródeł danych.

    Źródła danychzostanie otwarteokno .

  2. W Źródła danych okno, kliknij Dodać nowe źródło danych.

    Kreatora konfiguracji źródła danych otwiera.

  3. Na Wybierz typ źródła danych stronę, wybierz opcję bazy danych, a następnie kliknij przycisk Dalej.

  4. Na Wybierz Model bazy danych stronę, wybierz opcję Dataset, a następnie kliknij przycisk Dalej.

  5. 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.

  6. Na Zapisać aplikacji skonfigurować plik ciągu połączenia stronę, wybierz opcję Tak, Zapisz połączenie jako pole wyboru Dalej.

  7. Na Wybierz obiekty bazy danych użytkownika stronę, a następnie rozwiń tabel, a następnie wybierz produktu (SalesLT) tabeli.

  8. 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.

  9. 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

  1. W Solution Explorer, kliknij dwukrotnie plik AdventureWorksLTDataSet.xsd.

    Otwiera Dataset projektant .

  2. W projektant, kliknij prawym przyciskiem myszy Fill,GetData() kwerenda , a następnie wybierz Konfigurowanie.

    Kreatora konfiguracji TableAdapter otwiera.

  3. 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'
    
  4. 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

  1. W Solution Explorer, kliknij dwukrotnie pozycję MainWindow.xaml.

    okno zostanie otwarte w projektancie WPF .

  2. 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">&lt;</Button>
    <Button HorizontalAlignment="Left" Margin="116,20,0,24" Name="nextButton" Width="75">&gt;</Button>
    <Button HorizontalAlignment="Right" Margin="0,21,46,24" Name="saveButton" Width="110">Save changes</Button>
    
  3. 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

  1. W Źródła danych okno, kliknij menu rozwijane dla produktu węzeł i wybierz Szczegóły.

  2. Rozwiń węzeł produktu węzła.

  3. 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

  4. 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.

  5. 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.

  6. W projektant, kliknij pole tekstowe obok ID produktu etykiety.

  7. 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

  1. 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.

  2. 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();
    }
    
  3. 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();
    }
    
  4. Powrócić do projektant , a następnie kliknij dwukrotnie pozycję > przycisku.

  5. 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

  1. W projektant, kliknij dwukrotnie Zapisać zmiany przycisku.

    Visual Studio otwiera plik związany z kodem i tworzy nowy saveButton_Clickobsługi zdarzenie Click zdarzenie.

  2. 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ę

  1. 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.

  2. W jednym z rekordów produktu, zmienianie rozmiar wartość, a następnie kliknij przycisk zapisać zmiany.

  3. Zamknij aplikację, a następnie uruchom ponownie aplikację przez naciśnięcie F5 w Visual Studio.

  4. Przejdź do rekordu produktu, który został zmieniony i sprawdź, czy zmiana jest trwała.

  5. Zamknij aplikację.

Następne kroki

Po ukończeniu tego instruktażu, można wykonywać następujące zadania:

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

WPF i Silverlight Designer, omówienie

Omówienie wiązania danych