编程语言
首页 > 编程语言> > c#-在没有标称类的情况下绑定Silverlight中的XML

c#-在没有标称类的情况下绑定Silverlight中的XML

作者:互联网

假设我有一个简单的XML块:

<root>
   <item forename="Fred" surname="Flintstone" />
   <item forename="Barney" surname="Rubble" />
</root>

在Silverlight中获取此XML之后,我想将其与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-> Generated类.

编辑:匿名类不起作用,Silverlight无法绑定它们.

编辑:这需要两种方式,用户需要能够编辑值,并且这些值最终存储在XML中. (在上面的示例中,将原始TextBlock更改为TextBox.)

解决方法:

有关信息,请参见Binding to Anonymous types in Silverlight.

标签:xml-binding,linq-to-xml,xml,c,silverlight
来源: https://codeday.me/bug/20191024/1921826.html