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:
Definovaných datových sad a TableAdapterů. Další informace naleznete v tématu Datové sady nástrojů v sadě Visual Studio a TableAdapter – přehled.
Práce s návrháři WPF. Další informace naleznete v tématu WPF a Silverlight Designer – přehled.
WPF datové vazby. Další informace naleznete v tématu Přehled datových vazeb.
Vytvoření projektu
Vytvořte nový projekt WPF. Projekt se zobrazí záznamy produktů.
Vytvoření projektu
Spusťte aplikaci Visual Studio.
V nabídce Soubor přejděte na příkaz Nový a klikněte na Projekt.
Rozbalte jazyka Visual Basic nebo **Visual C#**a pak vyberte Windows.
Vyberte aplikace WPF šablona projektu.
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
V nabídce Data klikněte na položku Zobrazit zdroje dat.
Zdroje dat okno.
V okně Zdroje dat klikněte na tlačítko Přidat nový zdroj dat.
Otevře se Průvodce konfigurací zdroje dat.
Na stránce Zvolit typ datového zdroje vyberte možnost Databáze a potom klikněte na tlačítko Další.
Na stránce Vyberte databázový model vyberte možnost Datová sada a potom klikněte na tlačítko Další.
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.
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ší.
Na zvolte vaše databázové objekty stránka, rozbalte položku tabulkya pak vyberte produkt (SalesLT) tabulky.
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ázvemProductTableAdapter
. Dále v tomto návodu budete používatProductTableAdapter
Chcete-li vyplnit dataset s daty a uložit změny do databáze.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
V Průzkumník řešení, poklepejte na soubor AdventureWorksLTDataSet.xsd.
Otevře se Návrhář datových sad.
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.
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'
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
V Průzkumník řešení, poklepejte na MainWindow.xaml.
Okno se otevře v Návrháři WPF.
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>
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
V zdroje dat okno, klepněte na rozevírací nabídku pro výrobku uzel a vyberte podrobnosti.
Rozbalte výrobku uzlu.
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
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.
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.
V návrháři, klepněte na textové pole vedle ID produktu popisek.
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ů
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í.Změnit
Window_Loaded
obslužné rutiny události tak naProductViewSource
,AdventureWorksLTDataSet
, aAdventureWorksLTDataSetProductTableAdapter
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
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
Vrátit do návrháře a poklepejte > tlačítko.
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ů
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í.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
metodaTableAdapter
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žítUpdateAll
metodaTableAdapterManager
, 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
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ů.
V jednom ze záznamů produktů změnit velikost hodnotu a potom klepněte na tlačítko uložit změny.
Ukončete aplikaci a stisknutím klávesy restartujte aplikaci F5 v aplikaci Visual Studio.
Přejděte na záznam produktu, který jste změnili a ověřte, že změna trvalá.
Ukončete aplikaci.
Další kroky
Po dokončení tohoto návodu, můžete provádět následující úlohy související:
Naučte se používat zdroje dat okna v aplikaci Visual Studio k vytvoření vazby WPF prvky na jiné typy datových zdrojů. Další informace naleznete v tématu Vytvoření vazby ovládacích prvků WPF služby WCF data Service.
Naučte se používat zdroje dat okna v aplikaci Visual Studio pro zobrazení souvisejících dat (to znamená data ve vztahu nadřízený podřízený) ovládacích prvků WPF. Další informace naleznete v tématu Návod: Zobrazování souvisejících dat v aplikaci WPF.
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