Vinculando XML no Silverlight sem classes nominais
Digamos que eu tenho um simples pedaço de XML: -
<root>
<item forename="Fred" surname="Flintstone" />
<item forename="Barney" surname="Rubble" />
</root>
Depois de buscar esse XML no Silverlight, gostaria de vinculá-loXAML deste ilke: -
<ListBox x:Name="ItemList" Style="{StaticResource Items}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding Forename}" />
<TextBox Text="{Binding Surname}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Agora eu posso ligar simplesmente o suficiente com LINQ to XML e uma classe nominal: -
public class Person {
public string Forename {get; set;}
public string Surname {get; set;}
}
Isso pode ser feito sem essa aula?
Em outras palavras, o acoplamento entre o código do Silverlight e o XML de entrada é limitado apenas ao XAML, outro código-fonte é independente do conjunto de atributos no elemento do item.
Editar: O uso do XSD é sugerido, mas, no final, é a mesma coisa. XSD-> classe gerada.
Editar: Uma classe anônima não funciona, o Silverlight não pode vinculá-los.
Editar: Isso precisa ser bidirecional, o usuário precisa editar os valores e esses valores acabam no XML. (Alterou o TextBlock original para TextBox na amostra acima.)