Disons que je simple chunck XML: -XML Binding dans Silverlight sans classes nominales
<root>
<item forename="Fred" surname="Flintstone" />
<item forename="Barney" surname="Rubble" />
</root>
Après avoir récupéré ce XML dans Silverlight Je voudrais lier avec XAML de cette 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>
maintenant, je peux lier assez simplement avec LINQ to XML et une classe nominale: -
public class Person {
public string Forename {get; set;}
public string Surname {get; set;}
}
Peut-il être fait sans cette classe?
En d'autres termes, le couplage entre le code et le code XML Silverlight d'entrée est limitée à la seule XAML, un autre code source est agnostique à l'ensemble des attributs de l'élément de l'article.
Édition: L'utilisation de XSD est suggérée mais finalement elle revient à la même chose. XSD-> Classe générée.
Modifier: Une classe anonyme ne fonctionne pas, Silverlight ne peut pas les lier.
Modifier: Cela doit être bidirectionnel, l'utilisateur doit pouvoir modifier les valeurs et ces valeurs se retrouvent dans le fichier XML. (Changé TextBlock originale TextBox dans l'échantillon ci-dessus.)
+5 milliard de points, mon chapeau se détache de toi! – AnthonyWJones