Udostępnij za pośrednictwem


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

Tworzenie projektu

Utwórz nowy projekt WPF.Projekt służy do wyświetlenia rekordów produktu.

Aby utworzyć projekt

  1. Uruchom program Visual Studio.

  2. W menu Plik, wskaż Nowy, a następnie kliknij przycisk Projekt.

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

  4. Wybierz aplikacji WPF szablon projektu.

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

  1. W menu Dane kliknij przycisk Pokaż źródła danych.

    Źródła danych zostanie otwarte okno.

  2. W źródła danych okna, kliknij przycisk Dodaj nowe źródło danych.

    Zostanie otwarty Kreator konfiguracji źródła danych.

  3. Na stronie Wybierz typ źródła danych zaznacz Baza danych, a następnie kliknij Dalej.

  4. Na Wybierz Model bazy danych zaznacz opcję zestawu danych, a następnie kliknij przycisk Dalej.

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

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

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

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

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

  1. W Eksploratora rozwiązań, kliknij dwukrotnie plik AdventureWorksLTDataSet.xsd.

    Otwiera designer zestawu danych.

  2. W projektancie, kliknij prawym przyciskiem myszy Fill,GetData() badania i wybierz Konfiguruj.

    Kreatora konfiguracji Obiekt TableAdapter otwiera.

  3. W Wpisz instrukcję SQL Dodaj klauzuli WHERE następujące po SELECT instrukcję, w polu tekstowym.

    WHERE ThumbnailPhotoFileName <> 'no_image_available_small.gif'
    
  4. 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

  1. W Eksploratora rozwiązań, kliknij dwukrotnie pozycję MainWindow.xaml.

    Otwiera okno w Projektancie WPF.

  2. 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">&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 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

  1. W źródła danych okna, kliknij menu rozwijane dla produktu a następnie wybierz węzeł Szczegóły.

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

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

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

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

  6. W projektancie, kliknij pole tekstowe identyfikator produktu etykiety.

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

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

  2. 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();
    }
    
  3. 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();
    }
    
  4. Powrót do projektanta i kliknij dwukrotnie > przycisku.

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

  1. W projektancie, kliknij dwukrotnie Zapisz zmiany przycisku.

    Visual Studio otwiera plik kodem i tworzy nowy saveButton_Click program obsługi zdarzeń dla Click zdarzenia.

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

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

  2. W jednym z rekordów produktu, należy zmienić rozmiar wartości, a następnie kliknij przycisk zapisać zmiany.

  3. Zamknij aplikację, a następnie ponownie uruchom aplikację naciskając klawisz F5 w programie Visual Studio.

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

  5. Zamknij aplikację.

Następne kroki

Po wykonaniu tej procedury, można wykonać następujące zadania:

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

Przegląd Wiązanie danych

Inne zasoby

Omówienie projektanta WPF