Dela via


LINQ till XML-databindningsexempel

I den här artikeln beskrivs LinqToXmlDataBinding-exemplet, en WPF-app (Windows Presentation Foundation) som binder användargränssnittskomponenter till en inbäddad XML-datakälla.

Överblick

LinqToXmlDataBinding-exemplet är en WPF-app (Windows Presentation Foundation) som innehåller C#- och XAML-källfiler. Ett inbäddat XML-dokument definierar en lista med böcker. Med appen kan användaren visa, lägga till, ta bort och redigera bokposterna.

Det finns två primära källfiler:

  • L2DBForm.xaml innehåller XAML-deklarationskoden för användargränssnittet i huvudfönstret. Den innehåller också ett avsnitt med fönsterresurser som definierar en dataprovider och ett inbäddat XML-dokument för boklistorna.

  • L2DBForm.xaml.cs innehåller de initierings- och händelsehanteringsmetoder som är associerade med användargränssnittet.

Huvudfönstret är indelat i följande fyra lodräta gränssnittsavsnitt:

  • XML- visar xml-råkällan för den inbäddade boklistan.

  • Boklista visar bokposterna som standardtext och gör att användaren kan välja och ta bort enskilda poster.

  • Redigera vald bok gör det möjligt för användaren att redigera de värden som är associerade med den valda bokposten.

  • Lägg till ny bok gör det möjligt att skapa en ny bokpost baserat på värden som användaren har angett.

Kör exemplet

Det här avsnittet visar hur du skapar och skapar LinqToXmlDataBinding-projektet i Visual Studio och hur du kör den resulterande LinqToXmlDataBinding Windows Presentation Foundation-appen (WPF).

Skapa projektet

  1. Öppna Visual Studio och skapa en C# WPF-app med namnet LinqToXmlDataBinding.

    Projektet bör rikta in sig på .NET Framework 3.5 (eller senare).

  2. Om det inte redan finns lägger du till projektreferenser för följande .NET-sammansättningar:

    • System.Data
    • System.Data.DataSetExtensions
    • System.Xml
    • System.Xml
  3. Skapa lösningen genom att trycka på Ctrl+Skift+Boch sedan köra den genom att trycka på F5.

    Projektet bör kompileras utan fel och köras som ett allmänt WPF-program.

Lägg till kod

  1. I Solution Explorerbyter du namn på källfilen Window1.xaml till L2XDBForm.xaml.

    Den beroende källfilen Window1.xaml.cs byts automatiskt namn till L2XDBForm.xaml.cs.

  2. Ersätt källkoden som finns i filen L2XDBForm.xaml med källkoden L2DBForm.xaml. Använd XAML-källvyn för att arbeta med den här filen.

  3. På samma sätt ersätter du källan i L2XDBForm.xaml.cs med L2DBForm.xaml.cs källkoden.

  4. I filen App.xamlersätter du alla förekomster av strängen Window1.xaml med L2XDBForm.xaml.

  5. Skapa lösningen genom att trycka på Ctrl+Skift+B.

Kör appen

Med LinqToXmlDataBinding-appen kan användaren visa och ändra en lista över böcker som lagras som ett inbäddat XML-element. Kör appen genom att trycka på F5 (Starta felsökning) eller Ctrl+F5 (Starta utan felsökning).

Ett programfönster med rubriken WPF-databindning med LINQ till XML- visas.

Det översta avsnittet i användargränssnittet visar den råa XML-data som representerar boklistan. Den visas med hjälp av en WPF-TextBlock kontroll, som inte aktiverar interaktion via musen eller tangentbordet.

Det andra lodräta avsnittet, märkt Boklista, visar böckerna som en oformaterad ordnad lista. Den använder en ListBox kontroll som aktiverar val via mus eller tangentbord.

Lägga till och ta bort böcker

Om du vill lägga till en ny bok i listan anger du värden i kontrollerna ID och ValueTextBox i det sista avsnittet Lägg till ny bokoch väljer sedan Lägg till bok. Boken läggs till i listan i både bok- och XML-listor. Det här programmet validerar inte indatavärden.

Om du vill ta bort en befintlig bok från listan markerar du den i avsnittet Boklista och väljer sedan Ta bort vald bok. Bokposteringen tas bort från både boken och de råa XML-källistorna.

Redigera en bokpost

  1. Välj bokposten i den andra Boklistan sektionen.

    Dess aktuella värden visas i avsnittet Redigera vald bok.

  2. Redigera värdena med hjälp av tangentbordet. Så snart någon av TextBox-kontrollerna förlorar fokus sprids ändringarna automatiskt till XML-källa och boklistor.