Sdílet prostřednictvím


Vytvoření vazby ovládacích prvků WPF k datové sady

 

Publikováno: duben 2016

V tomto návodu vytvoříte aplikaci WPF, která obsahuje ovládací prvky vázané na data. Ovládací prvky jsou vázány na záznamy produktů, které jsou zapouzdřeny v objektu dataset. Pokud přidáte tlačítka Procházet produkty a změny uložit záznamy produktů.

Tento návod znázorňuje následující úlohy:

  • Vytváření aplikací WPF a datové sady, která je generována z dat v ukázkové databázi AdventureWorksLT.

  • Vytváření sadu ovládacích prvků vázaných na data, přetažením z tabulky dat zdroje dat okno na okno v Návrháři WPF.

  • Vytvoření tlačítka vpřed a zpět procházet záznamy produktů.

  • Vytvoření tlačítka, které uloží změny, které uživatelé provedou záznamy do tabulky dat a podkladový zdroj dat.

    Poznámka

    Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení integrovaného vývojového prostředí.

Požadavky

K dokončení tohoto návodu budete potřebovat následující komponenty:

  • Visual Studio

  • Přístup ke spuštěné instanci serveru SQL Server nebo SQL Server Express, který má k němu připojené ukázkové databázi AdventureWorksLT. Je možné stáhnout z databáze AdventureWorksLT webu CodePlex.

Předchozí znalost následujících konceptů je také užitečné, ale nejsou vyžadovány pro dokončení návodu:

Vytvoření projektu

Vytvořte nový projekt WPF. Projekt se zobrazí záznamy produktů.

Vytvoření projektu

  1. Spusťte aplikaci Visual Studio.

  2. V nabídce Soubor přejděte na příkaz Nový a klikněte na Projekt.

  3. Rozbalte jazyka Visual Basic nebo **Visual C#**a pak vyberte Windows.

  4. Vyberte aplikace WPF šablona projektu.

  5. V jméno zadejte AdventureWorksProductsEditor a klepněte na tlačítko OK.

    Visual Studio vytvoří AdventureWorksProductsEditor projektu.

Vytvoření datové sady pro aplikace

Před vytvořením ovládacích prvků vázaných na data, musíte definovat datový model aplikace a přidat ji do zdroje dat okno. V tomto návodu vytvoříte datovou sadu použít jako datový model.

Chcete-li vytvořit objekt dataset

  1. V nabídce Data klikněte na položku Zobrazit zdroje dat.

    Zdroje dat okno.

  2. V okně Zdroje dat klikněte na tlačítko Přidat nový zdroj dat.

    Otevře se Průvodce konfigurací zdroje dat.

  3. Na stránce Zvolit typ datového zdroje vyberte možnost Databáze a potom klikněte na tlačítko Další.

  4. Na stránce Vyberte databázový model vyberte možnost Datová sada a potom klikněte na tlačítko Další.

  5. V vybrat datové připojení vyberte jednu z následujících možností:

    • Pokud je k dispozici v rozevíracím seznamu datové připojení k ukázkové databázi AdventureWorksLT, vyberte ji a klepněte na tlačítko Další.

      -nebo-

    • Klepněte na tlačítko nové připojení a vytvořte připojení k databázi AdventureWorksLT.

  6. Na uložit připojovací řetězec do souboru konfigurace aplikace vyberte Ano, uložit připojení jako políčko a klepněte na tlačítko Další.

  7. Na zvolte vaše databázové objekty stránka, rozbalte položku tabulkya pak vyberte produkt (SalesLT) tabulky.

  8. Klikněte na tlačítko Dokončit.

    Visual Studio přidá do projektu nový soubor AdventureWorksLTDataSet.xsd a přidá odpovídající AdventureWorksLTDataSet položku zdroje dat okno. Soubor AdventureWorksLTDataSet.xsd definuje zadaný dataset s názvem AdventureWorksLTDataSet a TableAdapter, s názvem ProductTableAdapter. Dále v tomto návodu budete používat ProductTableAdapter Chcete-li vyplnit dataset s daty a uložit změny do databáze.

  9. Sestavte projekt.

Úpravy výchozí metodu výplně TableAdapter

Chcete-li vyplnit dataset s daty, použijte Fill metoda ProductTableAdapter. Standardně Fill metoda výplně ProductDataTable v AdventureWorksLTDataSet se všechny řádky dat z tabulky Product. Tato metoda vrátí pouze podmnožinu řádků, můžete upravit. V tomto návodu můžete změnit Fill metoda vrátí pouze řádky pro produkty, které mají fotografie.

Chcete-li načíst řádky produktů, které mají fotografie

  1. V Průzkumník řešení, poklepejte na soubor AdventureWorksLTDataSet.xsd.

    Otevře se Návrhář datových sad.

  2. V návrháři, klepněte pravým tlačítkem myši Fill,GetData() dotaz a vyberte konfigurace.

    Průvodce Konfigurace třídy TableAdapter otevře.

  3. V zadejte příkaz SQL stránky, přidejte následující klauzuli WHERE po SELECT prohlášení v textovém poli.

    WHERE ThumbnailPhotoFileName <> 'no_image_available_small.gif'  
    
  4. Klikněte na tlačítko Dokončit.

Definice uživatelského rozhraní

Přidáte několik tlačítek okna pomocí úpravy v Návrháři WPF XAML. Dále v tomto návodu přidáte kód, který umožňuje uživatelům přejít přes a uložte změny záznamů produktů pomocí těchto tlačítek.

Chcete-li definovat uživatelské rozhraní okna

  1. V Průzkumník řešení, poklepejte na MainWindow.xaml.

    Okno se otevře v Návrháři WPF.

  2. V XAML zobrazit návrháře, přidejte následující kód mezi <Grid> značky:

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

Vytváření ovládacích prvků vázaných na Data

Vytvořit ovládací prvky, které zobrazení záznamů zákazníků tak, že přetáhnete výrobku z tabulky zdroje dat okna Návrháře WPF.

Chcete-li vytvořit ovládací prvky vázané na data

  1. V zdroje dat okno, klepněte na rozevírací nabídku pro výrobku uzel a vyberte podrobnosti.

  2. Rozbalte výrobku uzlu.

  3. V tomto příkladu některá pole nebude zobrazeno, klepněte na tlačítko rozevírací nabídce vedle následující uzly a vyberte žádný:

    • ProductCategoryID

    • ProductModelID

    • ThumbnailPhotoFileName

    • ROWGUID

    • ModifiedDate

  4. Klepněte v rozevírací nabídce vedle ThumbNailPhoto uzel a vyberte obraz.

    Poznámka

    Podle výchozího nastavení položky zdroje dat okno, které představují obrázky mají jejich výchozí ovládací prvek nastavena na žádný. Je to proto, že jsou obrázky uloženy jako pole bajtů v databázích a bajtová pole mohou obsahovat cokoli od jednoduché pole bajtů ke spustitelnému souboru velké aplikace.

  5. Z zdroje dat okna, přetáhněte výrobku uzel tabulky řádek pod řádkem, který obsahuje tlačítka.

    Sada Visual Studio generuje jazyk XAML, který definuje sadu ovládacích prvků vázaných na data produkty tabulky. Také vygeneruje kód, který načte data. Další informace o generovaný kód a XAML, viz Vytvoření vazby ovládacích prvků WPF k datům v sadě Visual Studio.

  6. V návrháři, klepněte na textové pole vedle ID produktu popisek.

  7. V vlastnosti okno, vyberte zaškrtávací políčko vedle IsReadOnly vlastnost.

Procházení záznamů produktu

Přidejte kód, který umožňuje uživatelům procházet záznamy produktů pomocí < a > tlačítka.

Chcete-li povolit uživatelům procházet záznamy produktů

  1. V designu poklepejte < tlačítko na povrchu okna.

    Visual Studio otevře soubor kódu a vytvoří novou backButton_Click obslužnou rutinu události Click událostí.

  2. Změnit Window_Loaded obslužné rutiny události tak na ProductViewSource, AdventureWorksLTDataSet, a AdventureWorksLTDataSetProductTableAdapter jsou mimo metodu a přístupné pro celý formulář. Pouze uvést ve formuláři globální, je v rámci přiřazení Window_Loaded obslužnou rutinu události podobné následujícím:

            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();
            }
    
        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
    
  3. Přidejte následující kód do obslužné rutiny události backButton_Click:

                if (productViewSource.View.CurrentPosition > 0)
                {
                    productViewSource.View.MoveCurrentToPrevious();
                }
    
            If ProductViewSource.View.CurrentPosition > 0 Then
                ProductViewSource.View.MoveCurrentToPrevious()
            End If
    
  4. Vrátit do návrháře a poklepejte > tlačítko.

  5. Přidejte následující kód do obslužné rutiny události nextButton_Click:

                if (productViewSource.View.CurrentPosition < ((CollectionView)productViewSource.View).Count - 1)
                {
                    productViewSource.View.MoveCurrentToNext();
                }
    
            If ProductViewSource.View.CurrentPosition < CType(ProductViewSource.View, CollectionView).Count - 1 Then
                ProductViewSource.View.MoveCurrentToNext()
            End If
    

Uložení změn do produktu záznamy

Přidejte kód, který umožňuje uživatelům uložit záznamy produktů pomocí uložit změny tlačítko.

Chcete-li přidat možnost uložit změny záznamů produktů

  1. V designu poklepejte uložit změny tlačítko.

    Visual Studio otevře soubor kódu a vytvoří novou saveButton_Click obslužnou rutinu události Click událostí.

  2. Přidejte následující kód do obslužné rutiny události saveButton_Click:

                adventureWorksLTDataSetProductTableAdapter.Update(AdventureWorksLTDataSet.Product);
    
            AdventureWorksLTDataSetProductTableAdapter.Update(AdventureWorksLTDataSet.Product)
    

    Poznámka

    V tomto příkladu Save metoda TableAdapter uložit změny. To je vhodné v tomto návodu, protože je měněn pouze jednu datovou tabulku. Pokud potřebujete uložit změny do více tabulek dat, můžete také použít UpdateAll metoda TableAdapterManager , který generuje sada Visual Studio se v objektu dataset. Další informace naleznete v tématu TableAdapterManager – přehled.

Testování aplikace

Sestavte a spusťte aplikaci. Ověřte, že můžete zobrazit a aktualizovat záznamy produktů.

Testování aplikace

  1. Stiskněte klávesu F5.

    Aplikace vytvoří a spustí. Ověřte následující skutečnosti:

    • Textová pole zobrazují data z prvního záznamu produktu, který má fotografie. Tento produkt obsahuje ID 713 produktu a název dlouhé rukávu Logo Jersey, S.

    • Po klepnutí > nebo < tlačítka Procházet záznamy ostatních produktů.

  2. V jednom ze záznamů produktů změnit velikost hodnotu a potom klepněte na tlačítko uložit změny.

  3. Ukončete aplikaci a stisknutím klávesy restartujte aplikaci F5 v aplikaci Visual Studio.

  4. Přejděte na záznam produktu, který jste změnili a ověřte, že změna trvalá.

  5. Ukončete aplikaci.

Další kroky

Po dokončení tohoto návodu, můžete provádět následující úlohy související:

Viz také

Vytvoření vazby ovládacích prvků WPF k datům v sadě Visual Studio
Vytvoření vazby ovládacích prvků WPF k datům v sadě Visual Studio
Datové sady nástrojů v sadě Visual Studio
WPF a Silverlight Designer – přehled
Přehled datových vazeb