Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

LINQ: Popolare una Combobox con il valore di elementi XML (VB 2008)

Mi sono trovato a rispondere a una richiesta in cui si aveva la necessità di popolare una Combobox con il valore degli elementi di un file XML nell'ambito di un'applicazione Windows Forms scritta in Visual Basic. Invece che utilizzare le classiche classi del namespace System.Xml, riscriviamo il tutto utilizzando LINQ-To-XML.

Supponiamo di avere il seguente file XML, che contiene un elenco di fiori. Il nome di ciascun fiore dovrà poi essere aggiunto alla Combobox:

<?xml version="1.0" encoding="utf-8" ?>

<Fiori>

  <Fiore>Rosa</Fiore>

  <Fiore>Begonia</Fiore>

  <Fiore>Margherita</Fiore>

</Fiori>

Nell'evento Load del form, poi, aggiungiamo il seguente codice:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

 

        Dim s As New IO.StreamReader(Application.StartupPath + "\Fiori.xml")

 

        Dim doc As XDocument = XDocument.Load(s)

 

        'Recupera tutti gli elementi figli del nodo "Fiori"

        'quindi tutti gli elementi "Fiore", tramite metodo Extension "Elements"

        Dim risultato = doc.Elements("Fiori").Elements("Fiore")

 

        For Each elemento In risultato

            cmbFiori.Items.Add(elemento.Value)

        Next

 

        s.Close()

    End Sub

I commenti inseriti dovrebbero aiutare, in ogni caso si rileva che il primo metodo Elements dell'interrogazione recupera tutti gli elementi figli del nodo "Fiori". Il secondo metodo Elements è, in realtà, un metodo extension del primo e consente di recuperare tutti gli elementi "Fiore". L'esempio proposto riguarda una Combobox ma può, ovviamente, essere utilizzato anche nei confronti di altri controlli.

Alessandro

Print | posted on venerdì 28 marzo 2008 18:55 | Filed Under [ Visual Basic LINQ ]

Powered by:
Powered By Subtext Powered By ASP.NET