Sdílet prostřednictvím


Vytvoření vazby ovládacích prvků WPF k datové sadě v aplikacích .NET Framework

Poznámka:

Datové sady a související třídy jsou staršími technologiemi rozhraní .NET Framework z počátku 2000, které aplikacím umožňují pracovat s daty v paměti, zatímco aplikace jsou odpojené od databáze. Jsou zvláště užitečné pro aplikace, které uživatelům umožňují upravovat data a uchovávat změny zpět do databáze. I když se datové sady ukázaly jako velmi úspěšná technologie, doporučujeme, aby nové aplikace .NET používaly Entity Framework Core. Entity Framework poskytuje přirozenější způsob práce s tabulkovými daty jako objektovými modely a má jednodušší programovací rozhraní.

V tomto názorném postupu vytvoříte aplikaci WPF, která obsahuje ovládací prvky vázané na data. Ovládací prvky jsou vázané na záznamy o produktech, které jsou zapouzdřené v datové sadě. Přidáte také tlačítka pro procházení produktů a ukládání změn do záznamů o produktech.

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

  • Vytvoření aplikace WPF a datové sady vygenerované z dat v ukázkové databázi AdventureWorksLT

  • Vytvoření sady ovládacích prvků vázaných na data přetažením tabulky dat z okna Zdroje dat do okna v Návrháři WPF

  • Vytváření tlačítek, která přechází vpřed a vzad prostřednictvím záznamů o produktech

  • Vytvoření tlačítka, které uloží změny provedené uživateli v záznamech produktů do tabulky dat a souvisejícího zdroje dat.

Poznámka:

V počítači se můžou zobrazovat různé názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio v tomto článku. Možná používáte jinou edici sady Visual Studio nebo jiné nastavení prostředí. Další informace naleznete v tématu Přizpůsobení integrovaného vývojového prostředí (IDE).

Požadavky

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

  • K dokončení tohoto kurzu potřebujete úlohy vývoje desktopových aplikací .NET a ukládání a zpracování dat nainstalované v sadě Visual Studio. Pokud je chcete nainstalovat, otevřete Instalační program pro Visual Studio a zvolte Upravit (nebo Další>úpravy) vedle verze sady Visual Studio, kterou chcete upravit. Viz Úprava sady Visual Studio.

  • Přístup ke spuštěné instanci SQL Serveru nebo SQL Serveru Express, která má připojenou ukázkovou databázi AdventureWorks Light (AdventureWorksLT). Pokud chcete stáhnout databázi, podívejte se na ukázkové databáze AdventureWorks.

Předchozí znalost následujících konceptů je užitečná, ale nevyžaduje se k dokončení návodu:

Vytvoření projektu

Vytvořte nový projekt WPF pro zobrazení záznamů o produktech.

  1. Otevřete sadu Visual Studio.

  2. V úvodním okně zvolte Vytvořit nový projekt.

  3. Vyhledejte šablonu projektu WPF aplikace C# a postupujte podle pokynů k vytvoření projektu a pojmenování projektu AdventureWorksProductsEditor.

    Visual Studio vytvoří projekt AdventureWorksProductsEditor.

Vytvoření datové sady pro aplikaci

Než budete moct vytvářet ovládací prvky vázané na data, musíte pro aplikaci definovat datový model a přidat ho do okna Zdroje dat. V tomto názorném postupu vytvoříte datovou sadu, která se použije jako datový model.

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

    Otevře se okno Zdroje dat.

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

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

  3. Na stránce Zvolit typ zdroje dat vyberte Databázi a potom klepněte na tlačítko Další.

  4. Na stránce Zvolit model databáze vyberte Datová sada a potom klepněte na tlačítko Další.

  5. Na stránce Zvolit vaše data Připojení ion vyberte jednu z následujících možností:

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

    • Klikněte na Tlačítko Nový Připojení ion a vytvořte připojení k databázi AdventureWorksLT.

  6. Na stránce Uložit Připojení ion Řetězec na stránce Konfigurace souboru aplikace zaškrtněte políčko Ano, uložte připojení jako a klikněte na tlačítko Další.

  7. Na stránce Zvolit databázové objekty rozbalte tabulky a pak vyberte tabulku Product (SalesLT).

  8. Klikněte na Finish (Dokončit).

    Visual Studio přidá do projektu nový AdventureWorksLTDataSet.xsd soubor a do okna Zdroje dat přidá odpovídající položku AdventureWorksLTDataSet. Soubor AdventureWorksLTDataSet.xsd definuje typovou datovou sadu s názvem AdventureWorksLTDataSet TableAdapter s názvem ProductTableAdapter. Později v tomto názorném postupu použijete ProductTableAdapter k vyplnění datové sady data a uložení změn zpět do databáze.

  9. Sestavte projekt.

Úprava výchozí metody výplně TableAdapter

Pokud chcete datovou sadu vyplnit daty, použijte Fill metodu ProductTableAdapter. Metoda ve výchozím nastavení Fill vyplní ProductDataTable všechny AdventureWorksLTDataSet řádky dat z tabulky Product. Tuto metodu můžete upravit tak, aby vracela pouze podmnožinu řádků. V tomto názorném postupu upravte metodu Fill tak, aby vracela pouze řádky pro produkty, které mají fotky.

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

    Otevře se návrhář datové sady.

  2. V návrháři klikněte pravým tlačítkem myši na výplň, getData() dotaz a vyberte Konfigurovat.

    Otevře se Průvodce konfigurací TableAdapter.

  3. Na stránce Zadejte příkaz SQL přidejte následující WHERE klauzuli za SELECT příkaz do textového pole.

    WHERE ThumbnailPhotoFileName <> 'no_image_available_small.gif'
    
  4. Klikněte na Finish (Dokončit).

Definování uživatelského rozhraní

Přidejte do okna několik tlačítek úpravou XAML v Návrháři WPF. Později v tomto názorném postupu přidáte kód, který uživatelům umožní procházet a ukládat změny záznamů produktů pomocí těchto tlačítek.

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

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

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

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

Vytvoření ovládacích prvků vázaných na data

Vytvořte ovládací prvky, které zobrazují záznamy zákazníků přetažením Product tabulky z okna Zdroje dat do návrháře WPF.

  1. V okně Zdroje dat klikněte na rozevírací nabídku uzlu Produkt a vyberte Podrobnosti.

  2. Rozbalte uzel Produkt.

  3. V tomto příkladu se některá pole nezobrazí, takže klikněte na rozevírací nabídku vedle následujících uzlů a vyberte Žádné:

    • ProductCategoryID

    • Productmodelid

    • ThumbnailPhotoFileName

    • Rowguid

    • Modifieddate

  4. Klikněte na rozevírací nabídku vedle uzlu ThumbNailPhoto a vyberte Obrázek.

    Poznámka:

    Ve výchozím nastavení mají položky v okně Zdroje dat, které představují obrázky, výchozí ovládací prvek nastaven na Hodnotu Žádné. Je to proto, že obrázky jsou uloženy jako bajtová pole v databázích a bajtová pole můžou obsahovat cokoli od jednoduchého pole bajtů až po spustitelný soubor velké aplikace.

  5. V okně Zdroje dat přetáhněte uzel Product na řádek mřížky pod řádkem, který obsahuje tlačítka.

    Visual Studio generuje XAML, který definuje sadu ovládacích prvků, které jsou svázané s daty v tabulce Products . Vygeneruje také kód, který načte data. Další informace o vygenerovaném xaml a kódu naleznete v tématu Vytvoření vazby ovládacích prvků WPF k datům v sadě Visual Studio.

  6. V návrháři klikněte na textové pole vedle štítku Id výrobku.

  7. V okně Vlastnosti zaškrtněte políčko vedle vlastnosti IsReadOnly .

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

  1. V návrháři poklikejte na < tlačítko na ploše okna.

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

  2. Upravte obslužnou rutinu Window_Loaded události, takže AdventureWorksLTDataSetProductViewSource, a jsou AdventureWorksLTDataSetProductTableAdapter mimo metodu a přístupné pro celý formulář. Deklarujte pouze ty, které mají být globální ve formuláři, a přiřaďte je v rámci Window_Loaded obslužné rutiny události podobné následujícímu:

    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. Do obslužné rutiny události přidejte následující kód backButton_Click :

    if (productViewSource.View.CurrentPosition > 0)
    {
        productViewSource.View.MoveCurrentToPrevious();
    }
    
  4. Vraťte se do návrháře a poklikejte na > tlačítko.

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

    if (productViewSource.View.CurrentPosition < ((CollectionView)productViewSource.View).Count - 1)
    {
        productViewSource.View.MoveCurrentToNext();
    }
    

Uložení změn do záznamů o produktech

Přidejte kód, který uživatelům umožňuje ukládat změny do záznamů produktů pomocí tlačítka Uložit změny .

  1. V návrháři poklikejte na tlačítko Uložit změny .

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

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

    adventureWorksLTDataSetProductTableAdapter.Update(AdventureWorksLTDataSet.Product);
    

    Poznámka:

    Tento příklad používá Save metodu TableAdapter uložení změn. To je vhodné v tomto názorném postupu, protože se mění pouze jedna tabulka dat. Pokud potřebujete uložit změny do více datových tabulek, můžete alternativně použít UpdateAll metodu TableAdapterManager , kterou Sada Visual Studio vygeneruje s datovou sadou. Další informace naleznete v tématu TableAdapter.

Testování aplikace

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

  1. Stiskněte klávesu F5.

    Aplikace se sestaví a spustí. Zkontrolujte:

    • Textová pole zobrazují data z prvního záznamu produktu, který obsahuje fotku. Tento produkt má ID produktu 713 a název Long-Sleeve Logo Jersey, S.

    • Kliknutím na >< tlačítka můžete procházet další záznamy o produktech.

  2. V jednom ze záznamů o produktu změňte hodnotu Velikost a klikněte na tlačítko Uložit změny.

  3. Zavřete aplikaci a restartujte aplikaci stisknutím klávesy F5 v sadě Visual Studio.

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

  5. Zavřete aplikaci.

Další kroky

Po dokončení tohoto návodu můžete vyzkoušet následující související úlohy: