XMLの単純なチャンクがあるとしましょう:-
<root>
<item forename="Fred" surname="Flintstone" />
<item forename="Barney" surname="Rubble" />
</root>
このXMLをSilverlightでフェッチしたので、このilkeのXAMLとバインドしたいと思います:-
<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>
これで、LINQを使用してXMLと名詞クラスに簡単にバインドできます。-
public class Person {
public string Forename {get; set;}
public string Surname {get; set;}
}
このクラスなしでそれを行うことはできますか?
つまり、Silverlightコードと入力XMLの間の結合は、XAMLのみに制限され、他のソースコードはitem要素の属性のセットに依存しません。
編集:XSDの使用が提案されていますが、最終的には同じ量になります。XSD->生成されたクラス。
編集:匿名クラスは機能しません。Silverlightはそれらをバインドできません。
編集:これは双方向である必要があります。ユーザーは値を編集できる必要があり、これらの値は最終的にXMLになります。(上記のサンプルでは、元のTextBlockをTextBoxに変更しました。)