Boa tarde, é meu primeiro post aqui no Fórum MSDN então vou tentar ser o amsi específico possível.
Há alguns dias estou tentando criar uma pequena aplicação em Visual Basic (o novo Beta 2 de codename Orcas) onde preciso armazenar algumas informações.
São muitas para se usar em arquivos de texto plano e poucas para se usar um banco de dados, então optei por XML.
Pois bem, inicialmente a intenção era apenas montar um combobox com as informações do XML que, genericamente se parece com isso:
Code Block
<?xml version="1.0" encoding="utf-8"?>
<Shop>
<item>
<ID>1</ID>
<name>Texto 1</name>
</item>
<item>
<ID>2</ID>
<name>Texto 2</name>
</item>
</Shop>
Certinho. Para um combobox simples, vi que poderia usar como um DataSet e fiz isso:
Code Block
Dim var As New DataSet
var.ReadXml("meuXML.xml")
With Me.Combobox1
.DataSource = var.Tables("item")
.DisplayMember = "name"
.ValueMember = "ID"
End With
E funcionou direitinho. Populou o Combobox com as informações a serem vistas por DisplayMember e os valores utilizáveis por ValueMember.
O problema é que agora gostaria de fazer algumas coisas a mais com o XML.
Mas o quê?
Primeiramente gostaria de adicionar algumas tags a mais dentro de cada par
<item></item>, transformando meu XML original em algo mais ou menos nisso:
Code Block
<?xml version="1.0" encoding="utf-8"?>
<Shop>
<item>
<ID>1</ID>
<name>Texto 1</name>
<level>5</level>
<location>Minha Casa</location>
<DA>Sim</DA>
</item>
<item>
<ID>2</ID>
<name>Texto 2</name>
<level>10</level>
<location>Casa da Avó</location>
<DA>Não</DA>
</item>
</Shop>
E com essas novas informações poder exibir, no mesmo formulário, logo abaixo do atual Combobox.
Mais ou menos no formato:
Code Block
[label]Nome:[/label] [ Informação da tag <name></name> ]
[level]Level:[/level] [ Informação da tag <level></level> ]
[location]Localização:[/location] [ Informação da tag <location></location> ]
[DA]Nome:[/DA] [ Informação da tag <DA></DA> ]
Aqui, os BBCodes demonstrativos [label][/label] descrevem um elemento Label no Designer do formulário.
Os outros compreendidos entre colchetes representam algum outro tipo de campo que possa exibir as informações e que não permita edição.
Pensei em
Label também, mas não tive sucesso no "esquema de código" semelhante ao do combobox citado, uma vez que parece que elementos
Label não têm a propriedade (se é que se chama assim)
.DataSource.
Portanto, gostaria que alguém me ajudasse com esse problema, seja usando o mesmo esquema de código atual meu ou algum outro tipo de código que manipule o XML suprindo minhas necessidades tanto em Combobox quanto para exibição dessas pequenas infromações.
Desde já, agradeço