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. Tyto technologie 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:
Datové sady a objekty TableAdapter Další informace najdete v tématu Nástroje datové sady v sadě Visual Studio a Objekty TableAdapter.
Datová vazba WPF Další informace najdete v tématu Přehled datových vazeb.
Vytvoření projektu
Vytvořte nový projekt WPF pro zobrazení záznamů o produktech.
Otevřete sadu Visual Studio.
V úvodním okně zvolte Vytvořit nový projekt.
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.
V nabídce Data klikněte na Zobrazit zdroje dat.
Otevře se okno Zdroje dat.
V okně Zdroje dat klikněte na Přidat nový zdroj dat.
Otevře se Průvodce konfigurací zdroje dat.
Na stránce Zvolit typ zdroje dat vyberte Databázi a pak vyberte Další.
Na stránce Zvolit model databáze vyberte Datová sada a pak vyberte Další.
Na stránce Zvolit datové připojení vyberte jednu z následujících možností:
Pokud je v rozevíracím seznamu k dispozici datové připojení k ukázkové databázi AdventureWorksLT, vyberte ho a pak vyberte Další.
Klikněte na Nové připojení a vytvořte připojení k databázi AdventureWorksLT.
Na stránce Uložit připojovací řetězec na stránce Konfigurovat soubor aplikace zaškrtněte políčko Ano, uložte připojení jako zaškrtávací políčko a pak vyberte Další.
Na stránce Zvolit databázové objekty rozbalte tabulky a pak vyberte tabulku Product (SalesLT).
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. SouborAdventureWorksLTDataSet.xsd
definuje typovou datovou sadu s názvemAdventureWorksLTDataSet
TableAdapter s názvemProductTableAdapter
. Později v tomto názorném postupu použijeteProductTableAdapter
k vyplnění datové sady data a uložení změn zpět do databáze.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.
V Průzkumník řešení poklikejte na soubor AdventureWorksLTDataSet.xsd.
Otevře se návrhář datové sady.
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.
Na stránce Zadejte příkaz SQL přidejte následující
WHERE
klauzuli zaSELECT
příkaz do textového pole.WHERE ThumbnailPhotoFileName <> 'no_image_available_small.gif'
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.
V Průzkumník řešení poklikejte na MainWindow.xaml.
Okno se otevře v Návrháři WPF.
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"><</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>
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.
V okně Zdroje dat klikněte na rozevírací nabídku uzlu Produkt a vyberte Podrobnosti.
Rozbalte uzel Produkt.
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
Datum změny
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.
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.
V návrháři klikněte na textové pole vedle štítku Id výrobku.
V okně Vlastnosti zaškrtněte políčko vedle vlastnosti IsReadOnly .
Navigace v záznamech produktů
Přidejte kód, který uživatelům umožňuje procházet záznamy o produktech pomocí < tlačítek a > jejich procházení.
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.Upravte obslužnou rutinu
Window_Loaded
události, takžeAdventureWorksLTDataSet
ProductViewSource
, a jsouAdventureWorksLTDataSetProductTableAdapter
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ámciWindow_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(); }
Do obslužné rutiny události přidejte následující kód
backButton_Click
:Vraťte se do návrháře a poklikejte na > tlačítko.
Do obslužné rutiny události přidejte následující kód
nextButton_Click
:
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 .
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.Do obslužné rutiny události přidejte následující kód
saveButton_Click
:Poznámka:
Tento příklad používá
Save
metoduTableAdapter
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žítUpdateAll
metoduTableAdapterManager
, 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.
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.
V jednom ze záznamů o produktu změňte hodnotu Velikost a pak vyberte Uložit změny.
Zavřete aplikaci a restartujte aplikaci stisknutím klávesy F5 v sadě Visual Studio.
Přejděte na záznam produktu, který jste změnili, a ověřte, že změna trvala.
Zavřete aplikaci.
Další kroky
Po dokončení tohoto návodu můžete vyzkoušet následující související úlohy:
Naučte se používat okno Zdroje dat v sadě Visual Studio k vytvoření vazby ovládacích prvků WPF k jiným typům zdrojů dat. Další informace naleznete v tématu Vytvoření vazby ovládacích prvků WPF k datové službě WCF.
Naučte se používat okno Zdroje dat v sadě Visual Studio k zobrazení souvisejících dat (tj. dat v relaci nadřazený-podřízený) v ovládacích prvcích WPF. Další informace naleznete v tématu Návod: Zobrazení souvisejících dat v aplikaci WPF.